function getCntry()
{
	var cntry = readCookie("u_cntry");
	cntry = (cntry && cntry!=="")?cntry:'india';
	setCountry(cntry);
	return cntry;	
}

function getCookieVal(key)
{
	return readCookie(key);	
}

function  getFancyBoxSettings() {
	
	return {
		'titlePosition'		: 'inside',
		'autoScale'			: 'ture',
		'transitionIn'		: 'none',
		'transitionOut'		: 'none',
		'centerOnScroll'	:'true'
	};
}

function updateCounter(type, counter, isAjax){
	$('#pagemenus_'+type).html(createPageMenusByCounter(counter , type, isAjax));
}

function getDataInSyncCall(url){
	jQuery.ajaxSetup({async:false});
	 var data = $.getJSON(url);
	jQuery.ajaxSetup({async:true});
	return data;
}


function scrollIntoView(element, container) {
  var containerTop = $(container).scrollTop(); 
  var containerBottom = containerTop + $(container).height(); 
  var elemTop = element.offsetTop;
  var elemBottom = elemTop + $(element).height(); 
  if (elemTop < containerTop) {
    $(container).scrollTop(elemTop);
  } else if (elemBottom > containerBottom) {
    $(container).scrollTop(elemBottom - $(container).height());
  }
}


function initActivation(event){
	var urlsVars = getUrlVars(""+window.location);
	var activate = urlsVars["activate"];
	if(activate == "y"){
		//open a fancy box.
		
	var htm = createActivationMessage();
	$.fancybox(
			htm,getFancyBoxSettings()
		);
	}
	
	$('.activateCancel').unbind('click');
	$('.activateCancel').click(function(event) {
		$('#fancybox-close').trigger("click");	
	});

}

function focusOnLogin(){
    $("#log_email").focus();
}
function createLoginWarnClick(){
	$(".loginlink").click(function(){
		$('#fancybox-close').trigger("click");
        $("#loginbox").show();
        focusOnLogin();
}) ;

}

function initUiLinks(event){
	makeAnaLystClicks(event);
	makeAddIconLinks(event);
	makeTickerClicks(event);
	createPagination(event);
	createStarClicks(event);
	createInlineExpensionClicks(event);
	createCastVoteClicks(event);

	$(".singup").fancybox({
		'titlePosition'		: 'inside',
		'autoScale'			: 'ture',
		'transitionIn'		: 'none',
		'transitionOut'		: 'none',
		onClosed: function(){
			jQuery('#reg_success').hide();
			jQuery('#reg_failed').hide();
			jQuery('#reg_normal').show();
			
			jQuery('.singfields .labelerror ').prev('br').remove();
			jQuery('.singfields .labelerror ').next('br').remove();
			jQuery('.singfields .labelerror ').hide();
		}
	});
	
	$(".loginlink").click(function(){
	        $("#loginbox").show();
	        focusOnLogin();
	}) ;

  	//$(".analystwecovertable tr:odd,.se_re tr:odd").addClass("oddrow");
  	$(".charttable tr:odd,.se_re tr:odd").addClass("oddrow");
  //	$("#stoccovertables tr:odd,.se_re tr:odd,.distable tr:odd,.boptable tr:odd,.alertinfotable tr:odd,.tra tr:odd,.recommendtable tr:odd").addClass("oddrow");

  	doLazyLoadInit();

};
function markEndPeersList(elem, isEnd){
	if(isEnd){
		elem.attr("title", Messages["PEERS_END_LIST"]).css("cursor", "default");
	}else{
		elem.attr("title", "").css("cursor", "pointer");
	}
}
function createPeerGrpClicks(){
	$("#prevpeer").click(function (event) {
			var peerCount = parseInt($("input[name='peerCount']").val());
			var elm = $("input[name='startCount']");		
			var start = parseInt(elm.val());	
			if(start==0){
				markEndPeersList($('.fprev'), true);
				return;
			}else{
				markEndPeersList($('.fnext'), false);
				markEndPeersList($('.fprev'), false);
			}
			$("#peer"+(start+2)).hide();
			$("#peer"+(start-1)).show();			
			elm.val(start-1);
	});		
	
	$("#nextpeer").click(function (event) {
		var elm = $("input[name='startCount']");
		var peerCount = parseInt($("input[name='peerCount']").val());
		var start = parseInt(elm.val());		
		if(start+2 >= peerCount-1){
			markEndPeersList($('.fnext'), true);
			return;
		}else{
			markEndPeersList($('.fnext'), false);
			markEndPeersList($('.fprev'), false);
		}
		$("#peer"+(start)).hide();
		$("#peer"+(start+3)).show();		
		elm.val(start+1);
	});		
	
 };




function createCastVoteClicks(event){
    $('#cov_req_but').click(function (event) {
    	doCovReq(event);
    	event.stopPropagation();
    });
    
    $('#cov_req').blur(function (event) {
    	if(this.value=='') 
    		this.value='Add Stock & Analyst';
    	
    });
    
    $('#cov_req').focus(function (event) {
    	if(this.value =='Add Stock & Analyst' ) 
    		this.value='';
    });
 }


// centralised ajax calls
var siteAjax = (function($){
	  return {
	    getViaAjax: function(params){
	      var settings = $.extend({
	        url:      '',
	        spinner:  undefined,
	        dataType: 'json',
	        cache:    false,
	        success:  function(){}
	      }, params);
	 
	      $.ajax({
	          beforeSend: function(){
	            jQuery(settings.spinner).show();
	          },
	          url:        settings.url,
	          dataType:   settings.dataType,
	          success:    settings.success,
	          complete:   function(){
	              jQuery(settings.spinner).hide();
	            }     
	        });
	    }
	  };
	})(jQuery);

function callAjax(urlStr, context1, callBack, paramObj, req_type){
	if (req_type !== 'POST'){
		req_type = 'GET';
	}
	
	$.ajax({
		  url: urlStr,
		  context: context1,
		  dataType: 'json',
		  success: function(ret_data){
		  callBack(ret_data, paramObj);
		  }
		});
}

function handleDataUpdate(type, counter, data, func, baseBean){
	if(!data || !data[baseBean] ||  data[baseBean].length == 0){
		showMessage(Messages["PG_NODATA"]);
	}else{
		//var htm = func + "('" + data + "');";
		jQuery('div #'+type+'_data').html(func(data));
		updateCounter(type, counter, true);
		initUiLinks();
	}
}

function executePagination(event, type, counter){
	var cnt = getCntry();
	if(type==='newRecoLand'){
		//var url = getLinks("newRecos");
		//url = url.replace(".htm", "");
		callAjax('/ajax-TI/newRecos?&cn='+cnt+'&page='+counter+'&size=10', this, function(retData, params){
		//newReco_data
		var  data = retData.newRecosLandingMap;
		//data.type = params.type;
		//data.page_num = params.counter;
		handleDataUpdate(type, counter, data, createNewRecoLanding, "recoRelation");
		
		}, {'type':type, 'counter':counter});
	}else if(type === "exUpRecoLand"){
		callAjax('/ajax-TI/extremeUpRecos?&cn='+cnt+'&page='+counter+'&size=10', this, function(retData, params){
		//newReco_data
		var  data = retData.extremeUpLandingMap;
		//data.type = params.type;
		//data.page_num = params.counter;
		handleDataUpdate(type, counter, data, createExUpRecoLanding, "recoRelation");
		}, {'type':type, 'counter':counter});
	}else if(type === "exDnRecoLand"){

		callAjax('/ajax-/TI/extremeDownRecos?&cn='+cnt+'&page='+counter+'&size=10', this, function(retData, params){
		//newReco_data
		var  data = retData.extremeDownLandingMap;
		//data.type = params.type;
		//data.page_num = params.counter;
		handleDataUpdate(type, counter, data, createExDnRecoLanding, "recoRelation");
		}, {'type':type, 'counter':counter});
	}else if(type === "topRatedRecoLand"){
		callAjax('/ajax-TI/topRatedRecos?&cn='+cnt+'&page='+counter+'&size=10', this, function(retData, params){
		//newReco_data
		var  data = retData.topRatedRecosMap;
		//data.type = params.type;
		//data.page_num = params.counter;
		handleDataUpdate(type, counter, data, createNewRecoLanding, "recoRelation");
		}, {'type':type, 'counter':counter});
	}else if(type === "mostRecoStksLand"){
		callAjax('/ajax-TI/mostRecommendedStocks?&cn='+cnt+'&page='+counter+'&size=10', this, function(retData, params){
		//newReco_data
		var  data = retData.mostRecommendedStockLandingMap;
		//data.type = params.type;
		//data.page_num = params.counter;
		handleDataUpdate(type, counter, data, stkMostRecoLanding, "stockTopRecoAnalyst");
		}, {'type':type, 'counter':counter});
	}else if(type === "closedRecoLand"){
		callAjax('/ajax-TI/recentlyClosedRecos?&cn='+cnt+'&page='+counter+'&size=10', this, function(retData, params){
		//newReco_data
		var  data = retData.recentlyClosedLandingMap;
		//data.type = params.type;
		//data.page_num = params.counter;
		handleDataUpdate(type, counter, data, recCloseRecoLanding , "recoRelation");
		}, {'type':type, 'counter':counter});
	}else if(type === "anlStkLand"){
		callAjax('/ajax-AR/topRankedAnalystByStocks?&cn='+cnt+'&page='+counter+'&size=10', this, function(retData, params){
		//newReco_data
		var  data = retData.topRankedAnalystByStocksLandingMap;
		//data.type = params.type;
		//data.page_num = params.counter;
		handleDataUpdate(type, counter, data, createAnalystStkRank_aLand, "stockTopAnalyst");
		}, {'type':type, 'counter':counter});
	}else if(type === "analBySecLand"){
		
		var secId = $('#currentSecId').val();
		callAjax('/ajax-AR/topRankedAnalystBySector?&cn='+cnt+'&sectId='+secId+'&page='+counter+'&size=10', this, function(retData, params){
		//newReco_data
		var  data = retData.topRankedAnalystBySectorLandingMap;
		//data.type = params.type;
		//data.page_num = params.counter;
		handleDataUpdate(type, counter, data, createAnalystBySecLand, "SectorTopAnalyst");
		}, {'type':type, 'counter':counter});
	}else if(type === "oaAnlLand"){
		callAjax('/ajax-AR/topRatedAnalyst?&cn='+cnt+'&page='+counter+'&size=10', this, function(retData, params){
		//newReco_data
		var  data = retData.topRankedAnalystByOALandingMap;
		//data.type = params.type;
		//data.page_num = params.counter;
		handleDataUpdate(type, counter, data, createAnalystOARankLanding, "analystSectors");
		}, {'type':type, 'counter':counter});
	}else if(type.match(/^analBio/)){
		
		var alysId = type.substr(type.indexOf('_')+1, type.length);
		// anal bio related pages : 
		if(type.match(/^analBioSuccessCalls_/)){
			
			callAjax('/ajax-AR/analystRecos?&cn='+cnt+'&alysId='+alysId+'&page='+counter+'&size=10&recoType=SUCCESS', this, function(retData, params){
				//newReco_data
				var  data = retData.analystRecoMap;
				//data.type = params.type;
				//data.page_num = params.counter;
				handleDataUpdate(type, counter, data, createAnClosedRecoLanding, "recoRelation");

			}, {'type':type, 'counter':counter});
			
		}else if(type.match(/^analBioFailedCalls_/)){
			callAjax('/ajax-AR/analystRecos?&cn='+cnt+'&alysId='+alysId+'&page='+counter+'&size=10&recoType=FAILED', this, function(retData, params){
				//newReco_data
				var  data = retData.analystRecoMap;
				//data.type = params.type;
				//data.page_num = params.counter;
				handleDataUpdate(type, counter, data, createAnClosedRecoLanding, "recoRelation");
	
			}, {'type':type, 'counter':counter});
		}else if(type.match(/^analBioClosedCalls_/)){
			callAjax('/ajax-AR/analystRecos?&cn='+cnt+'&alysId='+alysId+'&page='+counter+'&size=10&recoType=CLOSED', this, function(retData, params){
				//newReco_data
				var  data = retData.analystRecoMap;
				//data.type = params.type;
				//data.page_num = params.counter;
				handleDataUpdate(type, counter, data, createAnClosedRecoLanding, "recoRelation");
	
			}, {'type':type, 'counter':counter});
		}else if(type.match(/^analBioOpenCalls_/)){
			callAjax('/ajax-AR/analystRecos?&cn='+cnt+'&alysId='+alysId+'&page='+counter+'&size=10&recoType=OPEN', this, function(retData, params){
				//newReco_data
				var  data = retData.analystRecoMap;
				//data.type = params.type;
				//data.page_num = params.counter;
				handleDataUpdate(type, counter, data, createAnOpenRecoLanding, "recoRelation");
	
			}, {'type':type, 'counter':counter});
		}
	}else if(type === "analBySecsLand"){
		
		//var secId = $('#currentSecId').val();
		callAjax('/ajax-AR/topRankedAnalystBySectors?&cn='+cnt+'&page='+counter+'&size=10', this, function(retData, params){
		//newReco_data
		var  data = retData.topRankedAnalystBySectorsLandingMap;
		//data.type = params.type;
		//data.page_num = params.counter;
		handleDataUpdate(type, counter, data, createAnalystBySecsLand, "SectorTopAnalyst");
		}, {'type':type, 'counter':counter});
	}else if(type === "myFavRecoLand"){
		//var secId = $('#currentSecId').val();
		callAjax('/ajax-TI/myFavRecos?&cn='+cnt+'&page='+counter+'&size=10', this, function(retData, params){
		//newReco_data
		var  data = retData.myFavLandingMap;
		//data.type = params.type;
		//data.page_num = params.counter;
		handleDataUpdate(type, counter, data, createNewRecoLanding, "recoRelation");
		}, {'type':type, 'counter':counter});
	}
	
	event.preventDefault();
};

function hashIt(ps){
	return hex_md5(ps);
	// return ps;
}

function submitLogin(event){
	
	var em = jQuery('#log_email').val();
	var ps = jQuery('#log_password').val();
	/*var path = window.location.pathname;
	$('#user_login').val(em);
	$('#user_pass').val(ps);
	$('#redirect_to').val(path);*/
	ps = hashIt(ps);  

	$('#submitLogin').spinner();
	siteAjax.getViaAjax({
		  url : '/ajax-Login?&cn='+getCntry()+'&email='+em+'&password='+ps,
		  spinner : '#mySpinnerId',  
		  dataType: 'json',
		  type  :    'GET',
		  success : function(data){
			  

				var msg = data.msg;

				if(msg == 0){
					showMessage(Messages["LO_OK"]);					
					//$('#user_fname').val(getCookieVal("u_fname"));
					//$('#user_lname').val(getCookieVal("u_lname"));
					//try {
						//$('#wploginform').submit();
					//}catch(e) {
						//window.location.url = path;
					//}
					window.location.reload();
				}else{
					
					if(msg == "1") // INCORRECT PASSWORD = 1 
					{
						//jQuery('#loginMsg').html(Messages["LO_FAIL_PASS"]);
						showMessage(Messages["LO_FAIL_PASS"]);
					}
					
					if(msg == "2") // PENDING ACTIVATION = 
					{
						//jQuery('#loginMsg').html(Messages["LO_FAIL_ACTV"]);
						showMessage(Messages["LO_FAIL_ACTV"]);
					}
					
					if(msg == "3") // NOT REGISTERED = 3 
					{
						//jQuery('#loginMsg').html(Messages["LO_FAIL_NOT_REG"]);
						showMessage(Messages["LO_FAIL_NOT_REG"]);

					}
					
					$('#submitLogin').spinner('remove');
				}
		  }
		});
}


$.fx.speeds._default = 1000;

function showMessage(message, buttonsObj){
	
	if(!buttonsObj){
		buttonsObj  = {
					"Ok": function() {
						$( this ).dialog( "close" );
					}
				};
		}
	
	//$.fx.speeds._default = 1000;

	$( "#mow_dialog").html("<div class ='' >"+message+"</div>");

	// delete the existing dialog.
	$( "#mow_dialog:ui-dialog" ).dialog( "destroy" );
	try{
	$( "#mow_dialog").dialog({
		modal: true,
		title:'<img width="120" height="15" alt="Milk or Water" src="'+getImgUrl("logo.png")+'">',
		buttons:buttonsObj,
		hide: "explode",
		zIndex: 11011

	});
	
	}catch(e){
		alert(e);
	}
}

function doFeedBkReq(event){
	var name = jQuery('#feedbk_name').val();
	var email = jQuery('#feedbk_email').val();
	var msg = jQuery('#feedbk_msg').val();
	var role = jQuery('#feed_role').val();
	var location = $('#feedLocation').html();
	var contactMeElem = jQuery('#feedbk_contactMe');
	var contactMe = false;
	if($(contactMeElem).attr("checked") == 'checked'){
		contactMe=true;
	}
	
	// null message
	if(msg == ''){
		$('#feedBkMsg').html('Please add your feedback Message.');
		return;
	}
	
	// validate for email address
	var obj = {};
	obj.userName = name;
	obj.email = email;
	obj.feedback = msg;
	obj.contactMe = contactMe;
	obj.role = role;
	obj.location = location;
	var url1 = '/ajax-UI/userFeedback?&cn='+getCntry();
	
	$.ajax({
		  type: 'POST',
		  url: url1,
		  data: obj,
		  success: function(retData){
				var msg = retData.status;
				if(msg === 'success'){
					//jQuery('#feedBkMsg').html(Messages["FDBK_OK"]);
					showMessage(Messages["FDBK_OK"]);
					$('#feedBackCancel').trigger("click");
					
				}else{
						//jQuery('#feedBkMsg').html(Messages["GEN_FAIL"]);
						showMessage(Messages["GEN_FAIL"]);
					}
		  },
		  dataType: "json"
		});
}


function doRegister(event){
	var fn = jQuery('#sign_firstname').val();
	var ln = jQuery('#sign_lastname').val();
	var em = jQuery('#sign_email').val();
	var ps = jQuery('#sign_password').val();
	ps = hashIt(ps);  

	var gender = jQuery('input[name=gender]:checked').val();
	var ageGrp = jQuery('#ageGrp').val();
	var invPref = jQuery("input[name=invPref]:checked");
	var learnAbout = jQuery("input[name=learnAbout]:checked");
	
	var learnAboutOpts = '';
	if(learnAbout && learnAbout.length>0){
		for ( var int = 0; int < learnAbout.length; int++) {
			var oneOpt = learnAbout[int];
			var val = $(oneOpt).val();
			learnAboutOpts+=val+'~';
		}

	}

	var invopts = '';
	if(invPref && invPref.length>0){
		for ( var int = 0; int < invPref.length; int++) {
			var oneOpt = invPref[int];
			var val = $(oneOpt).val();
			invopts+=val+'~';
		}

	}
	
	//var urltoCall = 'login/register.htm?fmt=json&email='+em+'&firstname='+fn+'&lastname='+ln+'&password='+ps;
	
	var ques = new StringBuffer();
	ques.append('&ques=');
	
	if(gender){
		ques.append('gender:'+gender+',');
	}	
	if(ageGrp){
		ques.append('ageGrp:'+ageGrp+',');
	}	
	if(invopts != ''){
		ques.append('invPref:'+invopts+',');
	}	
	if(learnAboutOpts != ''){
		ques.append('learnAbout:'+learnAboutOpts+',');
	}	
	
	//remove last index of ,
	
	var tempStr = ques.toString();
	tempStr = tempStr.substring(0, tempStr.lastIndexOf(','));


	
	$('#submit_register').spinner();

	siteAjax.getViaAjax({
		  spinner : '#mySpinnerId',
		  url : '/ajax-Login/register?&cn='+getCntry()+'&email='+em+'&firstName='+fn+'&lastName=&password='+ps+tempStr,
		  dataType: 'json',
		  success : function(retData){
				var msg = retData.status;
				if(msg === 'success'){
					jQuery('#reg_success').show();
					jQuery('#reg_failed').hide();
					jQuery('#reg_normal').hide();
				}else{
					jQuery('#reg_success').hide();
					jQuery('#reg_failed').show();
					jQuery('#reg_normal').hide();
					}
				
				$('#submit_register').spinner('remove');
		  
		  }
		});					
}

function forgotPs(){
	
	var em = jQuery('#log_email').val();
	
	
	var urltoCall = '/ajax-Login/forgotPassword?&cn='+getCntry()+'&email='+em;
	
	$('#forgotPsLink').spinner();
	
	callAjax(urltoCall, this, function(retData, params){
		//newReco_data
		var msg = retData.status;
		if(msg === 'success'){
			//alert('registration success');
			showMessage(Messages["LO_PASS_RENEW"]);
		}else{
			showMessage(Messages["GEN_FAIL"]);
		}
		$('#forgotPsLink').spinner('remove');
		
	}, null, 'GET');
	
}

if (String.prototype.trim != "function") {
	  String.prototype.trim = function () {
	    return this.replace(/^\s+|\s+$/g, '');
	  };
	}

if (String.prototype.paramSeperater != "function") {
	  String.prototype.paramSeperater = function () {
	    return this.replace(/find/g, ';');
	  };
	}


function loadBundles(lang) {
	jQuery.i18n.properties({
	    name:'msg', 
	    path:'/MilkOrWater/bundle/', 
	    mode:'map',
	    language:lang, 
	    callback: function() {
	    	//alert(jQuery.i18n.prop('hi'));
	    }
	});
}

function initEnterKey(event){
	
	$('#log_email').keypress(function(e) {
        if(e.which == 13) {
            jQuery(this).blur();
            jQuery('#submitLogin').focus().click();
        }
    });
	
	$('#log_password').keypress(function(e) {
        if(e.which == 13) {
            jQuery(this).blur();
            jQuery('#submitLogin').focus().trigger("click");
        }
    });
	
}


var initValidation = function (event) {
    jQuery('#signUpForm .validate').validateHandle();
    jQuery('#sign_password, #sign_password2').addRule({
        "bool": function () {
            jQuery('#sign_password, #sign_password2').removeError();
            var pass1 = jQuery("#sign_password").val();
            var pass2 = jQuery("#sign_password2").val();
            if(pass1 != '' && pass2 !=''){
                return jQuery("#sign_password").val() === jQuery('#sign_password2').val();
            }else{
            	return true;
            }
            
        },
        "message": "Passwords not matching."
    });
    
    jQuery('#sign_firstname').addRule({
        "bool": function () {
            jQuery('#sign_firstname').removeError();
            return jQuery('#sign_firstname').val().trim() != '';
        },
        "message": "Required field"
    });

    jQuery('#sign_password').addRule({
        "bool": function () {
            jQuery('#sign_password').removeError();
            return jQuery('#sign_password').val().trim() != '';
        },
        "message": "Required field"
    });
    
    jQuery('#sign_password2').addRule({
        "bool": function () {
            jQuery('#sign_password2').removeError();
            return jQuery('#sign_password2').val().trim() != '';
        },
        "message": "Required field"
    });

    //register
    jQuery('#submit_register').click(function (event) {
        if (jQuery('#signUpForm .validate').validate()) {
        	doRegister(event);
        	event.preventDefault();
        	return false;
        }
    });
    
    // login
    jQuery('#loginForm .validate').validateHandle();
    jQuery('#submitLogin').click(function (event) {
        if (jQuery('#loginForm .validate').validate()) {
        	submitLogin(event);
			event.preventDefault();
			return false;
        } else {
        	//alert("Please correct the errors and then click the 'Login' button.");
        }
    });
    
    // forgot
    jQuery('#forgotPsLink').click(function (event) {
        if (jQuery('#loginForm .validate').validate()) {
        	forgotPs(event);
        }
		event.preventDefault();
		return false;
    });
    
    // suscribe
    $('#suscrb_req_but').click(function (event) {
        $('#subscribe_section .validate').validateHandle();
        if (jQuery('#subscribe_section .validate').validate()) {
        	doSubscribe(event);
        	event.stopPropagation();
        }
    });

    
    jQuery('.myfeed .validate').validateHandle();
    // feedback
    
    jQuery('#feedbk_name').addRule({
        "bool": function () {
            jQuery('#feedbk_name').removeError();
            return jQuery('#feedbk_name').val().trim() != '';
        },
        "message": "Required field"
    });
    
    jQuery('#feedbk_msg').addRule({
        "bool": function () {
            jQuery('#feedbk_msg').removeError();
            return jQuery('#feedbk_msg').val().trim() != '';
        },
        "message": "Required field"
    });
    
    $('#feedBackSubmit').click(function (event) {
        if (jQuery('#feedbackDiv .validate').validate()) {
        	doFeedBkReq(event);
        }
    });

    $('#feedBackCancel').click(function (event) {
    		//hide the dialog.
    	$('.myfeed').toggle();    	
    	});

    $('#tellCancel').click(function (event) {
		//hide the dialog.
	$('.tellfriend').toggle();    	
	});
};


function ifSecondTabsExists(tabName){
	
	var tabCount = 0;
	$('#sec_tabs ul li a').each(function(i) {
	    if (this.text == tabName) {
	    	tabCount = i;
	    }
	});

	return tabCount;
}

function getTabNameByIndx(indx){
	var tbName = '';
		
	try{
		$('#sec_tabs ul li a').each(function(i) {
	    if (i == indx) {
	    	tbName = this.text;
	    //	break;
	    }
	});
	}catch(e){
		alert(e);
	}

	return tbName;
}


function makeAnaLystClicks(){
	// unbind any previously attached ;
	jQuery('.anLink').unbind('click');
	
	jQuery('.anLink').click(function(event) {
	try{
		var urlStr = this.href;
		//var hrefObj = getUrlVars(urlStr);
		window.location = urlStr;
		event.preventDefault();		
	}catch(e){alert(e);

	}
});
};

function makeTickerClicks(){
	
	jQuery('.tickerLink').unbind('click');

	jQuery('.tickerLink').click(function(event) {
		try{
			var urlStr = this.href;
			var hrefObj = getUrlVars(urlStr);
			window.location = urlStr;
			event.preventDefault();
		}catch(e){alert(e);}
				
	});	
};

jQuery(document).ready(function (event) {
	$(function(event)
			{
					initValidation(event);
					initUiLinks(event);
					initActivation(event);
					initEnterKey(event);
					initTellFriend(event);
					initMyAccountEdit(event);
			});
	
	$(function(event)
			{
		// this initialises the demo scollpanes on the page.
		jQuery('.stockcoverlistWrap, .anlcoverlistWrap, .stockcovertablebox, .analystwecovertablebox').jScrollPane({
			autoReinitialise: true
		}
)
	});

	
	$(function(event) {
	    var po = document.createElement('script'); po.type = 'text/javascript'; po.async = true;
	    po.src = 'https://apis.google.com/js/plusone.js';
	    var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(po, s);
	  });
	
	$(function(event) {
		
		var anls = $('.ban_an_con');
		
		jQuery.each(anls, function(i, val) {
			
			var elemId = val.id;
			
			var elem = $('#'+elemId+' > span > a');
						
			// count for total nubbers of chars
			var count = 0;
			for ( var i = 0; i < elem.length; i++) {
				count+= $(elem[i]).html().length;
			}

			if(count > 37){
				$($(elem).get(elem.length-1)).html('...');
				try{
					$('#'+elemId).tooltip({opacity : 0.75, relative:true, position:"bottom center"
					});
					}catch (e) {
						alert(e);
					}
			}		
		
		});

	});
	
	// login
	$(".login").click(function(){  
	        $("#loginbox").show();
     })  
	
     $(this).mouseup(function(event, elem) {
         if($(event.target).closest('.loginbox').length == 0) {
 	        $("#loginbox").slideUp();  
         }
     });
	
	$(document).keydown(function(e) {
	    if (e.keyCode == 27) {
 	        $("#loginbox").slideUp();  
	    }
	});
	
	
	$('#myAccountSubmit').click(function(event) {

		var obj = {};

		obj.email = $('input[name=email]').val();
		obj.name = $('input[name=name]').val();
		obj.mfExp = $('input[name=mfExp]:checked').val();
		obj.fdExp = $('input[name=fdExp]:checked').val();
		obj.dvExp = $('input[name=dvExp]:checked').val();
		obj.stkExp = $('input[name=stkExp]:checked').val();

		obj.hasBrokAcc = getCheckedOption($('input[name=hasBrokAcc]:checked')) == '' ? 'false' : getCheckedOption($('input[name=hasBrokAcc]:checked')) ;
		obj.sendNews =  getCheckedOption($('input[name=sendNews]:checked')) == '' ? 'false' : getCheckedOption($('input[name=sendNews]:checked'));

		obj.phNum = $('input[name=phNum]').val();
		obj.age = $('select[name=age]').val();
		obj.gender = $('input[name=gender]').val();
		obj.profession = $('input[name=profession]').val();
		obj.sendMowUpd = $('input[name=sendMowUpd]').val();
		
		obj.invPref = getCheckedOption($('input[name=invPref]:checked'));
		obj.invStyle = getCheckedOption($('input[name=invStyle]:checked'));
		obj.invStrat = getCheckedOption($('input[name=invStrat]:checked'));
		
		obj.invTimeHorizon = getCheckedOption($('input[name=invTimeHorizon]:checked'));
		obj.mcapLevel = getCheckedOption($('input[name=mcapLevel]:checked'));

		obj.alysRkLevel = $('input[name=alysRkLevel]:checked').val();
		obj.betaLevel = $('input[name=betaLevel]').val();

		//document.forms["myAccountForm"].submit();
		
		var url1 = '/ajax-UI/updateUserPref?cn='+getCntry();
		//var url1 = '/MilkOrWater/UI/updateUserPref.htm';
		$.ajax({
			  type: 'POST',
			  url: url1,
			  data: obj,
			  success: function(retData){
				  if(retData.status === 'success'){
				    	$('.myacc_input').each(function(i) {
				    		$(this).attr("disabled", 'true');
				    		$(this).css({"color": "grey"});
				    		$(this).removeClass('textfield_after');   		
				    	});
			    		$('#myAccountButtons').hide();
						showMessage(Messages["MY_ACC_SUB_SUCESS"]);
					}else{
						showMessage(Messages["GEN_FAIL"]);
					} 
			  },
			  dataType: "json"
			});

	});

	doLazyLoadInit();
	doFiltersInit(event);


});

function doLazyLoadInit(){
	if($('.lazy').lazyLoad){ // check if the desired feature is required.
		$(window).data('lazyloadersWin', []);
		$(window).data('lazyloaders', []);
		lazyLaodBox()
		lazyLoadWindow()
	}
}
function lazyLaodBox(){
	$(window).data('lazyloaders', []);
	$('.lazy').lazyLoad();
	
	var divScroll = false;
	// put the listener on scroll divs...
	$('.stockcovertablebox').scroll( function()
	{
		//Prevent scroll stacking
		if (!divScroll)
		{
			divScroll = true;
			//don't unlock for 250ms
			setTimeout( function()
			{
				var d = $(window).data('lazyloaders');
				if (!d || !d.length)
				{
					return;
				}
	
				$( d ).each( function(i)
				{	
					if ( this && $.inviewport( this, {threshold:0} ) )
					{
						$(this).showComment();
					}
				});

				divScroll = false;			
			}, 250);
					
		}
	});

	
	// initialize the lazy loading at box lavel...
	$('.stockcovertablebox').trigger( 'scroll' );

}


function lazyLoadWindow(){

	$('.lazyWin').lazyLoadWin();

	var winScroll = false;
	$(window).scroll( function()
			{
				//Prevent scroll stacking
				if (!winScroll)
				{
					winScroll = true;
					//don't unlock for 250ms
					setTimeout( function()
					{
						var d = $(window).data('lazyloadersWin');
						if (!d || !d.length)
						{
							return;
						}
			
						$( d ).each( function(i)
						{	
							if ( this && $.inviewport( this, {threshold:0} ) )
							{
								$(this).showComment();
							}
						});

						winScroll = false;			
					}, 250);
							
					$('.stockcovertablebox').trigger( 'scroll' );

				}
			});

			
			// initialize the lazy loading...
			$(window).trigger( 'scroll' );
			
}

function getCheckedOption(options){
	var opts = '';
	if(options && options.length>0){
		for ( var i = 0; i < options.length; i++) {
			var oneOpt = options[i];
			var val = $(oneOpt).val();
			if(i == (options.length-1)){
				opts+=val;
			}else{
				opts+=val+',';
			}
		}

	}
	return opts;
}


/*
function doTellFriend(){
	try{

		var tell_name = $('#tell_name').val();
		var tell_emails = $('#tell_email').val();
		var tell_subj = $('#tell_subj').val();
		var tell_msg = $('#tell_msg').val();

		// validate emails:
		var buff = new StringBuffer();
		var emails = tell_emails.split(',');
		for ( var i = 0; i < emails.length; i++) {
			try{
			if(emails[i].trim() == '' && emails.length == 1){
		    	   buff.append('<br/>Required Field : Email');
		    	   break;
			}
			
			if(emails[i].trim() == ''){
				continue;
			}
			
			if(email_reg.test(emails[i].trim()) == false)
		    	   buff.append('<br/>invalid Email:'+emails[i]);
			}catch (e) {
				alert(e);
			}
		}
		
		// check for subject
		// check for msg
		if(tell_subj.trim() == ''){
	    	   buff.append('<br/>Required Field : Subject');
		}
		
		if(tell_msg.trim() == ''){
	    	   buff.append('<br/>Required Field : Message');
		}
		
		var error = buff.toString();
		if(error.length > 0){
			$('#tellMsg').html(error);
		}else{
			$('.tellfriend').toggle();    	
			showMessage(Messages["WAIT_EMAIL"]);
			// send a service call
			
			
			var obj = {};
			obj.msg = tell_msg;
			obj.email = tell_emails;
			obj.subject = tell_subj;
			
			var url1 = '/ajax-UI/tellFriend?&cn='+getCntry();
			$.ajax({
				  type: 'POST',
				  url: url1,
				  data: obj,
				  success: function(retData){
				  },
				  dataType: "json"
				});
			
			
			tell_msg = tell_msg.replace(/\n+/g, '%0D%0A');
			var mailto_link = 'mailto:'+tell_emails+'?&subject='+tell_subj+'&body='+tell_msg;
			var win = window.open(mailto_link,'emailWindow');
			if (win && win.open &&!win.closed) win.close();
		}

}catch(e){
	alert(e);
	}
}
*/
function doTellFriend(){
	$( "#tellFriendDiv:ui-dialog" ).dialog( "destroy" );
	try{
		
		var buttonsObj  = {
				"Send Mail": function() {
					var tell_name = $('#tell_name').val();
					var tell_emails = $('#tell_email').val();
					var tell_subj = $('#tell_subj').val();
					var tell_msg = $('#tell_msg').val();

					// validate emails:
					var buff = new StringBuffer();
					var emails = tell_emails.split(',');
					for ( var i = 0; i < emails.length; i++) {
						try{
						if(emails[i].trim() == '' && emails.length == 1){
					    	   buff.append('<br/>Required Field : Email');
					    	   break;
						}
						
						if(emails[i].trim() == ''){
							continue;
						}
						
						if(email_reg.test(emails[i].trim()) == false)
					    	   buff.append('<br/>invalid Email:'+emails[i]);
						}catch (e) {
							alert(e);
						}
					}
					
					// check for subject
					// check for msg
					if(tell_subj.trim() == ''){
				    	   buff.append('<br/>Required Field : Subject');
					}
					
					if(tell_msg.trim() == ''){
				    	   buff.append('<br/>Required Field : Message');
					}
					
					var error = buff.toString();
					if(error.length > 0){
						$('#tellMsg').html(error);
					}else{
						$( this ).dialog( "close" );

						showMessage(Messages["WAIT_EMAIL"]);
						// send a service call
						
						
						var obj = {};
						obj.msg = tell_msg;
						obj.email = tell_emails;
						obj.subject = tell_subj;
						
						var url1 = '/ajax-UI/tellFriend?&cn='+getCntry();
						$.ajax({
							  type: 'POST',
							  url: url1,
							  data: obj,
							  success: function(retData){
							  },
							  dataType: "json"
							});
						
						
						tell_msg = tell_msg.replace(/\n+/g, '%0D%0A');
						var mailto_link = 'mailto:'+tell_emails+'?subject='+tell_subj+'&body='+tell_msg;
						var win = window.open(mailto_link,'emailWindow');
						if (win && win.open &&!win.closed) win.close();
					}
					
				},
				"Not Now": function() {
					$( this ).dialog( "close" );
				}
			};
	
	$( "#tellfriendDiv").dialog({
		modal: true,
		title:'<img width="120" height="15" alt="Milk or Water" src="'+getImgUrl("logo.png")+'">',
		buttons:buttonsObj,
		hide: "explode",
		zIndex: 11011,
		width:"500px"

	});

}catch(e){
	alert(e);
	}
}



function initTellFriend(event){
	
    jQuery('#tellFrien').click(function (event) {
    		doTellFriend(event);
    });
    
    $('#tell_subj').val(Messages["TELL_FRIEN_SUB"]);
    $('#tell_msg').val(Messages["TELL_FRIEN_MSG"]);
	$('#tell_name').val('');
	$('#tell_email').val('');
	$('#tellMsg').val('');
}

function initMyAccountEdit(event){
    jQuery('#account_edit').click(function (event) {
    	$('.myacc_input').each(function(i) {
    		if($(this).id && $(this).id == 'age' && $(this).val()!= 'select'){
    			
    		}else{
        		$(this).removeAttr("disabled");
        		$(this).css({"color": "black"});	
        		$(this).addClass('textfield_after');
    		}
    	});	
    	$('#myAccountButtons').show();
    });

}

function initAtoZFilters(type){
	$('.AtoZFilters').click(function(event) {
		try{
			$('.AtoZFilters').removeClass('activeFilter');
			$(this).addClass('activeFilter');
			var text = this.innerHTML == 'A-Z' ? '' : this.innerHTML;
			
			if(text == ''){
				return;
			}
			
			var dataElems;
			switch (type) {
			case "anWeCover":
				dataElems = $('.anLink');
				break;
			case "stkWeCover":
				dataElems = $('.tickerLink');
				break;
			}
			
			for(var k = 0 ; k < dataElems.length; k++){
				 var a_nm = $(dataElems[k]).html();
				 if(a_nm.startsWith(text)){
					 //var scroller = anal_tableStore.fnSettings().nTable.parentNode;
					 //scrollIntoView(analsys[k].parentNode.parentNode, scroller);
					 //scroller.scrollTo($(analsys[k].parentNode.parentNode)); 
					 dataElems[k].parentNode.parentNode.scrollIntoView(true);
					 break;
				 }	
			}
			
		}catch (e) {
			alert(e);
		}
	});
}

String.prototype.startsWith = function(str)
{return (this.match("^"+str)==str)}


function initFirmFilters(){
	$('.firmFilter').change(function(event) {
		try{
			// first fetch the value to filter in ui side.
			if($(this).val() != ''){
				var text = $(".firmFilter option:selected")[0].text;
			}else{
				var text = $(this).val();
			}
			processTable('filter',text, 1);
		}catch (e) {
			alert(e);
		}
	
	// make indexing back to default
		
		$('.AtoZFilters').removeClass('activeFilter');
		$('.defaultFilter').addClass('activeFilter');
		
	});

	removeDuplicateInSelect($('.firmFilter'));
	sortDropDownListByText($('.firmFilter'));

	
}


function sortDropDownListByText(selectElem) {
    // Loop for each select element on the page.
    $(selectElem).each(function() {
        
        // Keep track of the selected option.
        var selectedValue = $(this).val();

        // Sort all the options by text. I could easily sort these by val.
        $(this).html($("option", $(this)).sort(function(a, b) {
            return a.text == b.text ? 0 : a.text < b.text ? -1 : 1
        }));

        // Select one option.
        $(this).val(selectedValue);
    });
}


function removeDuplicateInSelect(selectElem){
	var a = new Array();
    var selectedValue = selectElem.val();

	selectElem.children("option").each(function(x){
		test = false;
		b = a[x] = $(this).text();
		for (i=0;i<a.length-1;i++){
		if (b ==a[i]) test =true;
		}
		if (test) $(this).remove();
		});	
    
	selectElem.val(selectedValue);

}

function processTable(option, matchStr, colCount){
	switch (option) 
	{
		case 'sort':
			break;
		case 'filter':
			anal_tableStore.fnFilter(matchStr, colCount, true, true, false);
			break;
	}
}

function initMyAccountSlider(event){

	$( "#stkExpSlider" ).slider({
		value:100,
		min: 0,
		max: 500,
		step: 50,
		slide: function( event, ui ) {
			$( "#stkExp" ).val(ui.value );
		}
	});

}



//Ajax activity indicator bound to ajax start/stop document events
$(document).ajaxStart(function(){
	 $('body').css('cursor', 'wait');
   

}).ajaxStop(function(){
	 $('body').css('cursor', 'auto');
});

function createStarClicks(event){
	$('.starIcon').unbind('click');
	
	$('.starIcon').click(function(event) {
		
		try{
			
			if(!loggedInUser()){
				showLoginWarning();
				return false;
			}
			
			var id = this.id;
			var objArr = id.split('_');
			var entity = objArr[1];
			var entityId = objArr[2];
			
			var buff = new StringBuffer();
			buff.append('userFav=');
			buff.append(entity+':'+entityId);

			// call server
			
			var qStr = buff.toString();
			callAjax('/ajax-UI/delFav?&cn='+getCntry()+'&'+qStr, this, function(retData, params){
				if(retData.status === 'success'){
					$('#nostar_'+entity+'_'+entityId).show();
					$('#star_'+entity+'_'+entityId).hide();
					showMessage(Messages["FAV_OK"]);
				}else{
					showMessage(Messages["GEN_FAIL"]);
				}
			}, {'entityId':entityId, 'entity':entity});

			
		}catch (e) {
			
		}
		
	});	
	
	$('.nostarIcon').unbind('click');
	
	$('.nostarIcon').click(function(event) {
		try{
			
			if(!loggedInUser()){
				showLoginWarning();
				return false;
			}
			
			
			var id = this.id;
			
			var objArr = id.split('_');
			var entity = objArr[1];
			var entityId = objArr[2];
			
			var buff = new StringBuffer();
			buff.append('userFav=');
			buff.append(entity+':'+entityId);

			//alert(uid);
			var qStr = buff.toString();
			// call server
			
			callAjax('/ajax-UI/fav?&cn='+getCntry()+'&'+qStr, this, function(retData, params){
				if(retData.status === 'success'){
					// hide no star show star
					$('#star_'+entity+'_'+entityId).show();
					$('#nostar_'+entity+'_'+entityId).hide();
					showMessage(Messages["FAV_OK"]);
				}else{
					showMessage(Messages["GEN_FAIL"]);
				}
			}, {'entityId':entityId, 'entity':entity});
			
		}catch (e) {
			
		}
		
	});	
}

function showLoginWarning(){
	var htm = createRegisWarnMessage();
	
	$.fancybox(
			htm,getFancyBoxSettings()

		);
	
	// add listern 
	$('.singupWarn').unbind('click');
	$('.singupWarn').click(function(event) {
		
		$('#fancybox-close').trigger("click");	
		$('.singup').trigger("click");	
		
		event.preventDefault();
	
	});
	
	createLoginWarnClick();

}

function makeAddIconLinks(){
	$('.recovote').unbind('click');
	$('.recovote').click(function(event) {
		
		if(!loggedInUser()){
			showLoginWarning();
			return false;
		}
		
		try{
			var idToUse = this.id;

			var objArr = idToUse.split('_');
			//obj.recoId = ;
			
			var voteHtml = createVoteHtml("RECO", objArr[1]);
			
			$.fancybox(
					voteHtml,getFancyBoxSettings()

				);
			
			
			$('.voteIndvOk').unbind('click');
			$('.voteIndvOk').click(function(event) {
				var id = this.id;
				var recoVote =  $('input[name=recoVote]:checked');
				var buff = new StringBuffer();
				buff.append("userVote=");
				if(recoVote && recoVote.val()){
					var val = recoVote.val();
					if(val === 'Likely to succeed'){
						buff.append("Likely to succeed:"+$('#recoInRow').val()+":RECO:1");
					}else if(val === 'Very iffy'){
						buff.append("Very iffy:"+$('#recoInRow').val()+":RECO:0");
					}else{
						buff.append("Unlikely:"+$('#recoInRow').val()+":RECO:-1");
					}
				}else{
					$('#addFancyStatus').html("<label class ='labelerror'>Please select an option to vote</label>");
					return false;
				}
				
				// call ajax:
				callAjax('/ajax-UI/vote?'+buff.toString(), this, function(retData, params){
					if(retData.status == 'success'){
							showMessage(Messages["UV_RECO_OK"]);
							$('#fancybox-close').trigger("click");
						}else{
							jQuery('#addFancyStatus').html(Messages["TINY_FAIL"]);	
							showMessage(Messages["GEN_FAIL"]);
						}
				}, null);
				
			});
			
			$('.voteIndvCancel').unbind('click');
			$('.voteIndvCancel').click(function(event) {
				$('#fancybox-close').trigger("click");	
			});
			
		}catch (e) {
			alert(e);
		}
		
	});	
	
	$('.anchAdd').unbind('click');

	$('.anchAdd').click(function(event) {
		try{
			
			if(!loggedInUser()){
				showLoginWarning();
				return false;
			}
			
			
			//var favs = $(this).attr('data_favData');
//			alert(favs);
			var idToUse =  this.id;
			//alert(idToUse);
		/*	//check if child anchor exists
			var child = $(this).find('.anchAdd');

			if(child.length > 0){
				idToUse = child[0].id;
			}
		*/	
			var obj = {};
			var objArr = idToUse.split('_');
			obj.recoId = objArr[1];
			obj.lstId = objArr[2];
			obj.alysId = objArr[3];
			obj.secId = objArr[4];
			
			callAjax('/ajax-UI/allFav?&cn='+getCntry(), this, function(retData, params){
				
				var html = createLightBox(obj, retData.favs);
				
				$.fancybox(
						html,getFancyBoxSettings()

					);
				$(".vo_title").click(function(){
					$(".optiontablelist").slideToggle("slow");
					$(this).toggleClass("vo_titleactive"); 
				});

				//attach listeners
				$('#okButtonAdd').unbind('click');
				$('#okButtonAdd').click(function(event) {
					try{
					// fetch the stk, list, anl, sec.
					var sel = 	$(".addfavourbox input:checked");	
					
					//userFav=STOCK:123,RECO:23365&userId=127"
					var queryStr = new StringBuffer();
					var addFavStr = new StringBuffer();
					addFavStr.append('addUserFav=');
					for(var i =0; i < sel.length; i++){
						var elem = sel[i];
						if(elem.id ==='lstAdd' && $('#lstInRow').val()!==''){
							addFavStr.append('STOCK:');
							addFavStr.append($('#lstInRow').val());
							addFavStr.append(',');
						}if (elem.id ==='alysAdd' && $('#alysInRow').val()!==''){
							addFavStr.append('ANALYST:');
							addFavStr.append($('#alysInRow').val());
							addFavStr.append(',');
						} if (elem.id ==='recoAdd' && $('#recoInRow').val() !== ''){
							addFavStr.append('RECO:');
							addFavStr.append($('#recoInRow').val());
							addFavStr.append(',');
						}if(elem.id === 'secAdd' && $('#sectInRow').val() !== ''){
							addFavStr.append('SECTOR:');
							addFavStr.append($('#sectInRow').val());
							addFavStr.append(',');
						}
					}
					var tempStr = addFavStr.toString();
					tempStr = tempStr.substring(0, tempStr.lastIndexOf(','));
					queryStr.append(tempStr);

					var unSel = 	$(".addfavourbox input:not(:checked)");	
					
					var delFavStr = new StringBuffer();
					delFavStr.append('&delUserFav=');
					for(var i =0; i < unSel.length; i++){
						var elem = unSel[i];
						if(elem.id ==='lstAdd' && $('#lstInRow').val()!==''){
							delFavStr.append('STOCK:');
							delFavStr.append($('#lstInRow').val());
							delFavStr.append(',');
						}if (elem.id ==='alysAdd' && $('#alysInRow').val()!==''){
							delFavStr.append('ANALYST:');
							delFavStr.append($('#alysInRow').val());
							delFavStr.append(',');
						} if (elem.id ==='recoAdd' && $('#recoInRow').val()!==''){
							delFavStr.append('RECO:');
							delFavStr.append($('#recoInRow').val());
							delFavStr.append(',');
						}if(elem.id === 'secAdd' && $('#sectInRow').val()!==''){
							delFavStr.append('SECTOR:');
							delFavStr.append($('#sectInRow').val());
							delFavStr.append(',');
						}
					}
					var temp2 = delFavStr.toString();
					temp2 = temp2.substring(0, temp2.lastIndexOf(','));
					queryStr.append(temp2);
					//queryStr.append('&userId=1346');
					
					
					
					// create vote string : 
					var stockVote =  $('input[name=stockVote]:checked');
					var sectorVote =  $('input[name=sectorVote]:checked');
					var analystVote =  $('input[name=analystVote]:checked');
					var recoVote =  $('input[name=recoVote]:checked');
					
					//userVote=Positive:123:STOCK:1
					
					
					var voteQuery = new StringBuffer();
					voteQuery.append("&userVote=");
					
					
					if(stockVote && stockVote.val()){
						var val = stockVote.val();
						if(val === 'Positive'){
							voteQuery.append("Positive:"+$('#lstInRow').val()+":STOCK:1");
						}else if(val === 'Neutral'){
							voteQuery.append("Neutral:"+$('#lstInRow').val()+":STOCK:0");
						}else if(val === 'Negative'){
							voteQuery.append("Negative:"+$('#lstInRow').val()+":STOCK:-1");
						}
						voteQuery.append(",");
					}
					
					if(sectorVote && sectorVote.val()){
						var val = sectorVote.val();
						if(val === 'Positive'){
							voteQuery.append("Positive:"+$('#sectInRow').val()+":SECTOR:1");
						}else if(val === 'Neutral'){
							voteQuery.append("Neutral:"+$('#sectInRow').val()+":SECTOR:0");
						}else if(val === 'Negative'){
							voteQuery.append("Negative:"+$('#sectInRow').val()+":SECTOR:-1");
						}
						voteQuery.append(",");
						
					}
					if(analystVote && analystVote.val()){
						var val = analystVote.val();
						if(val === 'Provides superior advice'){
							voteQuery.append("Provides superior advice:"+$('#alysInRow').val()+":ANALYST:1");
						}else if(val === 'Provides mediocre advice'){
							voteQuery.append("Provides mediocre advice:"+$('#alysInRow').val()+":ANALYST:0");
						}else if(val === 'Provides inferior advice'){
							voteQuery.append("Provides inferior advice:"+$('#alysInRow').val()+":ANALYST:-1");
						}
						
						voteQuery.append(",");
					}
					if(recoVote && recoVote.val()){
						var val = recoVote.val();
						if(val === 'Likely to succeed'){
							voteQuery.append("Likely to succeed:"+$('#recoInRow').val()+":RECO:1");
						}else if(val === 'Very iffy'){
							voteQuery.append("Very iffy:"+$('#recoInRow').val()+":RECO:0");
						}else{
							voteQuery.append("Unlikely:"+$('#recoInRow').val()+":RECO:-1");
						}
						voteQuery.append(",");
					}
					
					var temp3 = voteQuery.toString();
					temp2 = temp3.substring(0, temp3.lastIndexOf(','));
					
					queryStr.append(temp2);
					
					//alert(queryStr)
					callAjax('/ajax-UI/voteAndFav?&cn='+getCntry()+'&'+queryStr, this, function(retData, params){
						
						if(retData.status == 'success'){
							//$('#addFancyStatus').html(Messages["UV_FAV_OK"]);
							showMessage(Messages["UV_FAV_OK"]);
							$('#fancybox-close').trigger("click");

							
						}else{
							jQuery('#addFancyStatus').html(Messages["TINY_FAIL"]);
							showMessage(Messages["GEN_FAIL"]);
						}
					}, null);
					
				}catch(e){alert(e);}
				});	
				
				$('#cancelButtonAdd').unbind('click');
				$('#cancelButtonAdd').click(function(event) {
					try{
						$('#fancybox-close').trigger("click");	
					}catch(e){alert(e);}
				});	
			}, null);
			
		}catch(e){alert(e);}
	});	

	
/**
 * stock vote clicks
 */	
	$('.stockvote').unbind('click');
	$('.stockvote').click(function(event) {
		
		if(!loggedInUser()){
			showLoginWarning();
			return false;
		}
		
		try{
			var idToUse = this.id;

			var objArr = idToUse.split('_');
			//obj.recoId = ;
			
			var voteHtml = createVoteHtml("STOCK", objArr[1]);
			
			$.fancybox(
					voteHtml,getFancyBoxSettings()

				);
			
			
			$('#okButtonStock').unbind('click');
			$('#okButtonStock').click(function(event) {
				var id = this.id;
				var stockVote =  $('input[name=stockVote]:checked');
				var buff = new StringBuffer();
				buff.append("userVote=");
				if(stockVote && stockVote.val()){
					var val = stockVote.val();
					if(val === 'Positive'){
						buff.append("Positive:"+$('#lstInRow').val()+":STOCK:1");
					}else if(val === 'Neutral'){
						buff.append("Neutral:"+$('#lstInRow').val()+":STOCK:0");
					}else{
						buff.append("Negative:"+$('#lstInRow').val()+":STOCK:-1");
					}
				}else{
					$('#addFancyStatus').html("<label class ='labelerror'>Please select an option to vote</label>");
					return false;
				}
				
				// call ajax:
				callAjax('/ajax-UI/vote?'+buff.toString(), this, function(retData, params){
					if(retData.status == 'success'){
							showMessage(Messages["UV_RECO_OK"]);
							$('#fancybox-close').trigger("click");
						}else{
							jQuery('#addFancyStatus').html(Messages["TINY_FAIL"]);	
							showMessage(Messages["GEN_FAIL"]);
						}
				}, null);
				
			});
			
			$('#cancelButtonStock').unbind('click');
			$('#cancelButtonStock').click(function(event) {
				$('#fancybox-close').trigger("click");	
			});
			
		}catch (e) {
			alert(e);
		}
		
	});		
	
}

function secTabSelect(event, ui){
	var currentSelIndx = $('#sec_tabs').tabs( "option", "selected" );
	var fromTab = getTabNameByIndx(currentSelIndx);

	fromTab = fromTab == 'ALL' ? 'tab1' : fromTab

	var toTab = $(ui.tab).text();

	toTab = toTab == 'ALL' ? 'tab1' : toTab;

	try{
		callAjax('/a2ajax/'+fromTab+'/'+toTab+'?url='+window.location, this, function(retData){
		});			
	}catch(e){

	}

}

function analTabSelect(event, ui){

	var selPanel = ui.panel;
	var alysId = selPanel.id.substr(selPanel.id.indexOf('_')+1, selPanel.id.length);
	var counter = 1;
	var type = selPanel.id;
	if(selPanel.id.match(/^analBioSuccessCalls_/)  && $(selPanel).html().length < 100){
		callAjax('/ajax-AR/analystRecos?&cn='+getCntry()+'&alysId='+alysId+'&page='+counter+'&size=10&recoType=SUCCESS', this, function(retData, params){
			//newReco_data
			var  data = retData.analystRecoMap;
			data.alysId = alysId;
			data.type = params.type;
			data.page_num = params.counter;
			$('#'+selPanel.id+"_data").html(createAnClosedRecoLanding(data));
			
			//create paginations
			var pagination = getPaginationMenus(
					{"page_num":"1", "type" : selPanel.id, "isAjax":true}
					);
			
			$('#'+selPanel.id).append(pagination);
			initUiLinks();
			
		}, {'type':type, 'counter':counter});
	}else if(selPanel.id.match(/^analBioFailedCalls_/)   && $(selPanel).html().length < 100){
		callAjax('/ajax-AR/analystRecos?&cn='+getCntry()+'&alysId='+alysId+'&page='+counter+'&size=10&recoType=FAILED', this, function(retData, params){
			//newReco_data
			var  data = retData.analystRecoMap;
			data.type = params.type;
			data.alysId = alysId;
			data.page_num = params.counter;
			$('#'+selPanel.id+"_data").html(createAnClosedRecoLanding(data));
			
			var pagination = getPaginationMenus(
					{"page_num":"1", "type" : selPanel.id, "isAjax" : true}
					);

	$('#'+selPanel.id).append(pagination);
			initUiLinks();
			
		}, {'type':type, 'counter':counter});
	}else if(selPanel.id.match(/^analBioClosedCalls_/)  && $(selPanel).html().length < 100){
		callAjax('/ajax-AR/analystRecos?&cn='+getCntry()+'&alysId='+alysId+'&page='+counter+'&size=10&recoType=CLOSED', this, function(retData, params){
			//newReco_data
			var  data = retData.analystRecoMap;
			data.type = params.type;
			data.alysId = alysId;
			data.page_num = params.counter;
			$('#'+selPanel.id+"_data").html(createAnClosedRecoLanding(data));
			var pagination = getPaginationMenus(
							{"page_num":"1", "type" : selPanel.id, "isAjax":true}
							);

			$('#'+selPanel.id).append(pagination);
			initUiLinks();
			
		}, {'type':type, 'counter':counter});
	}else if(selPanel.id.match(/^analBioOpenCalls_/) && $(selPanel).html().length < 100){
		callAjax('/ajax-AR/analystRecos?&cn='+getCntry()+'&alysId='+alysId+'&page='+counter+'&size=10&recoType=OPEN', this, function(retData, params){
			//newReco_data
			var  data = retData.analystRecoMap;
			data.type = params.type;
			data.alysId = alysId;
			data.page_num = params.counter;
			$('#'+selPanel.id+"_data").html(createAnOpenRecoLanding(data));
			var pagination = getPaginationMenus(
							{"page_num":"1", "type" : selPanel.id, "isAjax":true}
							);

			$('#'+selPanel.id).append(pagination);
			initUiLinks();
			
		}, {'type':type, 'counter':counter});
	}
}

function renderIndvAnalyst(region, hrefObj){

	// fetch the required data for the analyst : 
	var alysId = hrefObj.alysId;

	callAjax('/ajax-AR/analystBio?&cn='+getCntry()+'&recoType=SUCCESS&alysId='+alysId+'&size=10', this, function(data, params){
		var analystBioJson = data.analystBioMap;
		var analystRecoJson = data.analystRecoMap;
		analystRecoJson.alysId = alysId;
		var buff = new StringBuffer();
		
		analystBioJson.userFav = analystRecoJson.userFav;
		buff.append(createAnalystBio(analystBioJson));
		
		analystRecoJson.analystBioJson = analystBioJson;
		
		buff.append(createAnalystTabs(analystRecoJson));
		buff.append(createAnRecoPerf(analystBioJson));
		region.html(buff.toString());
		initUiLinks();

		$('#analTabs'+alysId).tabs({select: function(event, ui) {
			analTabSelect(event, ui);
		} ,  'selected': 0 });
	}, {'type':"mytype"});
}


function renderChartInRegion(hrefObj,recoData,regionElem){

	var context = jQuery('#webContext').val();
	
	if(regionElem === '' || regionElem == null){
		
		if(hrefObj.lstId != null && hrefObj.lstId != 'null' && hrefObj.lstId != ''){
			regionElem  = $('#Chart_'+hrefObj.lstId);
		}else{
			regionElem  = $('#Chart_'+hrefObj.recoId);
		}
	}
   
	renderChart(hrefObj,formatJson(recoData), regionElem);

}

//Replace the normal jQuery getScript function with one that supports
//debugging and which references the script files as external resources
//rather than inline.
jQuery.extend({
	get1Script: function(url, callback) {
	    var head = document.getElementsByTagName("head")[0];

	    var ext = url.replace(/.*\.(\w+)$/, "$1");

	    if(ext === 'js'){
	        var script = document.createElement("script");
	        script.src = url;
	        script.type = 'text/javascript';
	    } else if(ext === 'css'){
	        var script = document.createElement("link");
	        script.href = url;
	        script.type = 'text/css';
	        script.rel = 'stylesheet';
	    } else {
	        return false;
	    }

	    // Handle Script loading
	    {
	        var done = false;

	        // Attach handlers for all browsers
	        script.onload = script.onreadystatechange = function(){
	            if ( !done && (!this.readyState ||
	            this.readyState == "loaded" || this.readyState == "complete") ) {
	                done = true;
	                if (callback)
	                callback();
	                // Handle memory leak in IE
	                script.onload = script.onreadystatechange = null;
	            }
	        };
	    }
	    head.appendChild(script);
	    // We handle everything using the script element injection
	    return undefined;
	} 
});

function executePaginationRefresh(count, elem){
	elem.href = '?'+buildParamUrl(count);
}
function createPagination(){
	$('.pagemenu li a').unbind('click');

	$('.pagemenu li a').click(function(event) {
		
		var elemId = this.id;
		var type = elemId.substr(elemId.indexOf('_')+1, (elemId.lastIndexOf('_')-5));
		var count = elemId.substr(elemId.lastIndexOf('_')+1 , elemId.length);

	if($(this).hasClass("next") || $(this).hasClass("prev")){
		if(this.id.match(/^next_/)){
			executePaginationRefresh(count, this);
		}else{
			if(count == 0){

				// fetch the highlighted count
				var currentElemId = $(".currentpage").attr('id');
				var currCount = currentElemId.substr(currentElemId.lastIndexOf('_')+1 , currentElemId.length);

				executePaginationRefresh(--currCount, this);
				//set the proper counter and call trigger on search
				
			}else{
				executePaginationRefresh(count, this);
				//set the proper counter and call trigger on search
			}
		}
	}else{ // ajax calls
		if(this.id.match(/^prev_/)){
			executePagination(event, type, count);
		}else{

			if(count == 0){
				// fetch the highlighted count
				var currentElemId = $(".currentpage").attr('id');
				var currCount = currentElemId.substr(currentElemId.lastIndexOf('_')+1 , currentElemId.length);

				executePagination(event, type, --currCount);
			}else{
				executePagination(event, type, count);
			}
		}
		  event.preventDefault();
	}
	});	
	
	//
	$('#analBySecLand').change(function(){
		var secId = $(this).val();
		var sec_name = $('#analBySecLand option:selected').text();
		sec_name = sec_name.replace(/\s+/g, '-');
		if(secId == "all"){
			window.location = '/'+getCntry()+'/top-rated-analysts-by-sector-performance';
		}else{
			window.location='/'+getCntry()+'/top-rated-analysts-in-'+sec_name+'-sector/'+secId;
		}
	});
};


$(document).ready(function(){
	//prev next links
	$(function()
			{
		//createPagination();
			});
});


function lowCaps(str){
	str = str.replace(/\s+/g, '-').toLowerCase();
return str;
};

function doSubscribe(event){
	var email = $('#suscrb_req').val();
	callAjax('/ajax-UI/subscribe?&cn='+getCntry()+'&subscribe=true&email='+email, this, function(retData, params){
		var msg = retData.status;
		
		if(msg === 'success'){
			//jQuery('#suscrMsg').html(Messages["SUBS_NEWS_OK"]);
			showMessage(Messages["SUBS_NEWS_OK"]);
		}else{
			//jQuery('#suscrMsg').html(Messages["GEN_FAIL"]);
			showMessage(Messages["GEN_FAIL"]);
		}
	}, null, 'GET');
	
	event.preventDefault();
};

function doCovReq(event){
	var cov_req = $('#cov_req').val();
	
	if(cov_req == 'Add Stock or Analyst'){
		jQuery('#cov_msg').html("<label class ='labelerror'>Add stock or analyst to cover</label>")
		return;
	}
	
	callAjax('/ajax-UI/castVote?&cn='+getCntry()+'&vote='+cov_req, this, function(retData, params){
		var msg = retData.status;
		
		if(msg === 'success'){
			//jQuery('#cov_msg').html(Messages["COVER_OK"]);
			showMessage(Messages["COVER_OK"]);
		}else{
			//jQuery('#cov_msg').html(Messages["GEN_FAIL"]);
			showMessage(Messages["GEN_FAIL"]);
		}
		
	}, null, 'GET');
	
	event.preventDefault();

};


function doSearch(event){
	var elemVal = $('#searchInputId').val();
	
	if(elemVal == ''){
		$('#search_msg').html('No results found');
		$('#search_msg').show();
		return;
	}
	var type = elemVal.split('_');

	var entity = type[0];
	var value = type[1];
	var name = type[2];
	var comp_name = type[3];
	var name = name.replace(/\s+/g, '-');
	var comp_name = comp_name.replace(/\s+/g, '-');
	
	comp_name = comp_name.replace(new RegExp('</b>','g') , '');
	comp_name = comp_name.replace(new RegExp('<b>','g') , '');
	
	name = name.replace(new RegExp('</b>','g') , '');
	name = name.replace(new RegExp('<b>','g') , '');

	
	if(entity == 'ANALYST'){
		window.location = '/'+getCntry()+'/analyst/'+name+'/'+comp_name+'/alysId='+value;
	}else if(entity == 'STOCK'){
		window.location = '/'+getCntry()+'/stock/'+comp_name+'/'+name+'/lstId='+value;
	}

}
jQuery(document).ready(function() {
	
	$("#searchButton").click(function(event) {
		doSearch();
	});
	
	$( "#searchInput" ).autocomplete({
		source: function( request, response ) {
			$.ajax({
				url: "/ajax-Search?&cn="+getCntry(),
				dataType: "json",
				data: {
					//featureClass: "P",
					//style: "full",
					maxRows: 12,
					searchStr: request.term
				},
				success: function( data ) {
					var searchResult = data.searchResult;
					if(searchResult.length == 0){
						$('#search_msg').html('No results found');
						$('#search_msg').show();
					}else{
						response(processResults(searchResult));
						$('#search_msg').hide();
					}
				}
			});
		},
		minLength: 2,
		select: function( event, ui ) {
			var item = ui.item;
			var itemval = ui.item.label;
			itemval = itemval.replace(new RegExp('<b>','g') , '');
			itemval = itemval.replace(new RegExp('</b>','g') , '');
			$( "#searchInput" ).val( itemval );
			$( "#searchInputId" ).val( ui.item.value );
			
			doSearch();
			return false;
		},
		open: function() {
			$( this ).removeClass( "ui-corner-all" ).addClass( "ui-corner-top" );
		},
		close: function() {
			$( this ).removeClass( "ui-corner-top" ).addClass( "ui-corner-all" );
		}
	}).data( "autocomplete" )._renderItem = function( ul, item ) {
		if(item.value ==  "ANALYST" || item.value ==  "STOCK"){
			return $( "<li></li>" )	.data( "item.autocomplete", item ).append( "<a disabled='disabled'>" + item.label + "</a>" ).appendTo( ul );
		}else{
			return $( "<li></li>" )	.data( "item.autocomplete", item ).append( "<a>" + item.label + "  " + item.desc + "</a>" ).appendTo( ul );
		}
};
});

/**
 * {"searchResult":[{"entity":"ANALYST","entityDesc":"Icici<\/b>","entityId":1422,"entityName":"Harendra Kumar"},
 * {"entity":"ANALYST","entityDesc":"Icici<\/b>","entityId":1432,"entityName":"Nitin Padmanabhan"},{"entity":"ANALYST","entityDesc":"Icici<\/b>","entityId":1434,"entityName":"Supriya Khedkar"},
 * {"entity":"STOCK","entityDesc":"Icici<\/b> Bank Limited","entityId":4203,"entityName":"ICICIBANK<\/b>"}]}
 * @param searchResult
 * @returns {Array}
 */
function processResults(searchResult){
	var returnObj = [];
	var anlHead = false;
	var stkHead = false;
	var secHead = false;
	
	for ( var int = 0; int < searchResult.length; int++) {
		var entity = searchResult[int].entity;
		
		
		if("ANALYST" == entity && anlHead == false){
			var header = {};
			header.label = '---ANALYST---';
			header.value = 'ANALYST';
			anlHead = true;
			returnObj.push(header)
		}else if("STOCK" == entity && stkHead == false){
			var header = {};
			header.label = '---STOCK---';
			header.value = 'STOCK';
			stkHead = true;
			returnObj.push(header)
			
		}else if("SECTOR" == entity && secHead == false){
			var header = {};
			header.label = '---SECTOR---';
			header.value = 'SECTOR';
			stkHead = true;
			returnObj.push(header)
		}
		// push the other items accordingly : 
		
		var vals = {};
		vals.label = searchResult[int].entityName;
		vals.value = searchResult[int].entity+'_'+searchResult[int].entityId+'_'+searchResult[int].entityName+'_'+searchResult[int].entityDesc;
		vals.desc = searchResult[int].entityDesc;
		
		returnObj.push(vals)
	}
	
	return returnObj;
};

function createCollapsibleClicks(divName,clickClass){
	$('.'+clickClass).unbind('click');
	$("."+clickClass).click(function(){
		var id = this.id.substring(this.id.indexOf('_'));
		var region = divName + id;
		$(this).toggleClass(clickClass+"Active");	
		$("#"+region).slideToggle("slow");
	});
};

function putScrollToTop(scrollId){
	if($('.'+scrollId)[0] && $('.'+scrollId)[0].scrollBy)
		$('.'+scrollId)[0].scrollBy('top'); 
};

function createInlineExpensionClicks(event){
	$('.inlineExp').unbind('click');
	$(".inlineExp").click(function(){
	var obj = this.id.split('_');
	var analId = obj[1];
	var recoId = obj[2];
	var lstlId = obj[3];
	
	var dataConfig = {};
	dataConfig.recoId = recoId;
	dataConfig.lstId = lstlId;

	var region = 'inlineChartAnalystDiv_'+analId+'_'+recoId+'_'+lstlId;
	$(this).toggleClass("inlineExpActive");
	
	$("#"+region).slideToggle("slow");
	if($("#"+region).html().length < 100){
		loadChart(dataConfig, $("#"+region));
	}
	
	return false;
});
};




function makeEntityAutoCompleate(elem, urlToCall, onSelection){
	$(elem).autocomplete({
		source: function( request, response ) {
			$.ajax({
				url: urlToCall,
				dataType: "json",
				data: {
					maxRows: 20,
					searchStr: request.term
				},
				success: function( data ) {
					var searchResult = data.searchResult;
					if(searchResult.length == 0){
						//$('#search_msg').html('No results found');
						//$('#search_msg').show();
					}else{
						response(processFilterSearchResults(searchResult));
						//$('#search_msg').hide();
					}
				}
			});
		},
		minLength: 1,
		select: function( event, ui ) {
			var item = ui.item;
			var itemval = ui.item.label;
			var attrib = fetchIdentifier($(elem).attr('id'), 0, '_');
			
			if(searchSpecs[attrib]["autoCompleteFormat"] == "withOutDesc"){
				itemval = itemval.substring(0, itemval.indexOf('('));
			}
			$('#'+attrib+'_input').val(itemval);

			return false;
		},
		open: function() {
			$( this ).removeClass( "ui-corner-all" ).addClass( "ui-corner-top" );
		},
		close: function() {
			$( this ).removeClass( "ui-corner-top" ).addClass( "ui-corner-all" );
		}
	})
	
}

function fetchIdentifier(identifierStr, startIndx , spltStr){
	return identifierStr.substring(startIndx, identifierStr.indexOf(spltStr));
}

/**
 * extending jquery to add custom wrapper functions
 */
(function ($){
$.fn.createTextFilter = function(){
	$(this).each(function(index) {
		
			var attrib = fetchIdentifier($(this).attr('id'), 0, '_');
			var url = searchSpecs[attrib].searchUrl;
			if(url)
				makeEntityAutoCompleate($(this), url, selectOnfilter);
	});
};
})($);

(function ($){
	$.fn.createSelectFilter = function(){
/*		$(this).each(function(index) {
			$(this).change(function(event) {
				var attrib = fetchIdentifier($(this).attr('id'), 0, '_');
				selectOnfilter(attrib, $(this).val())
			});
		});*/
	};
})($);

(function ($){
	$.fn.createSelectRangeFilter = function(){
		
		$(this).each(function(index) {
			
			var attrib = fetchIdentifier($(this).attr('id'), 0, '_');
			$(this).find('.SelectRange').change(function(event) {
				var val = $(this).val();
				if(val == 'custom'){
					$('#'+attrib+'_rangeWrap').find('.customRange').show();
				}else{
					$('#'+attrib+'_rangeWrap').find('.customRange').hide();
					//selectOnRange(attrib);
				}
			});
		
		});
	};
})($);

/**
 * do process after autocompleate selection.
 * @param initByElem
 * @param val
 */

function selectOnfilter(initByElem, val){
	var filterRow = $('#'+initByElem+' textarea', $('.filterDetails'));
	var filterRowDiv = $('#'+initByElem+' div.filterTextDiv', $('.filterDetails'));
	if(filterRow &&  filterRow.get(0)){
		var prevVal = $(filterRow).val().trim();
		
		if(prevVal){
			var vals = prevVal.split(';');
			if(jQuery.inArray(val,vals) == -1){
				$(filterRow).val(prevVal +';'+val);
				$(filterRowDiv).html(prevVal +';'+val);
			}
		}
		else{
			$(filterRow).val(val);
			$(filterRowDiv).html(val);
		}
	}
	else{
			$('.filterDetails tr:last').before(createFilterRow(initByElem, val));
			makeFilterEdits();	
			showAppliedFilters();

	}
	
	applyFilterHover();
}

function selectOnRange(initByElem, isCustom){
	var stdAttrib = initByElem;
	var from_val = '';
	var to_val = '';
	
	if(isCustom){
		from_val = $('#'+stdAttrib+'_from').val();
		to_val = $('#'+stdAttrib+'_to').val();
	}else{
		// select
		var vals = $('#'+initByElem+'_rangeSelect').val().split('-');
		from_val = vals[0];
		to_val = vals[1];
		
	}
	if(!from_val)
		from_val = '';
	if(!to_val)
		to_val = '';
	
	
	
	if(from_val == '' && to_val == '')
		return ;
	// check if from and to vals are appropriate
	
	var resObj = isValidRange(stdAttrib, from_val.trim() , to_val.trim());
	if(resObj.isValid == false){
		$('.rangeInputs.labelerror').html(resObj.message);
		return ;
	}else{
		$('.rangeInputs.labelerror').html('');
	}
	
	var valActual = from_val+'-'+to_val;
	
	selectOnfilter(initByElem,valActual)
}

function isValidRange(stdAttrib, from_val , to_val){
	
	var obj = {};
	obj.isValid = false;
	var buff = new StringBuffer();
	
	switch (searchSpecs[stdAttrib]["isNumeric"]) 
	{
		case true:
			var flagTo = false;
			var flagFrom = false;
			
			flagFrom = (!isNaN(from_val) && isFinite(from_val));
			flagTo = (!isNaN(to_val) && isFinite(to_val));

			if(flagFrom && flagTo && from_val!= '' && to_val != ''){
				obj.isValid = (parseInt(from_val) <= parseInt(to_val));
				if(!obj.isValid){
					buff.append(Messages["FILTER_INVALID_RANGE"]);
				}
			}else if((from_val == '' && flagTo) || (to_val == '' && flagFrom)){
				obj.isValid = true;
			}else{
				buff.append(Messages["INVALID_NUMBER_FILTER"]);
			}
			
			break;
		default : 
			obj.isValid = true;
	}
	
	obj.message = buff.toString();
	return obj;
}




/**
 * call the appropriate handler to create filters.
 */
function doFiltersInit(event){
	$( ".TextFilter" ).createTextFilter();
	$( ".SelectFilter" ).createSelectFilter();
	$( ".RangeFilter" ).createSelectRangeFilter();
	$( ".filterRadioSet" ).buttonset();
	$( ".datatr").hide();
	$( ".customRange").hide();

	$('.filterRadiosDiv').click(function(event) {
		$('.filterRadiosDiv').removeClass('active');
		$( ".datatr").hide();
		
		$(".datatd .fromtoDiv").hide();
		$(".datatd .filterTextArea").hide();
		$(".datatd .filterTextDiv").show();

		var attrib = this.id.substring(0, this.id.indexOf('_'));
		if(searchSpecs[attrib]["filterClass"] == "TextFilter"){
			$('#datatr_'+attrib +' .TextFilter').val("");	
			$('#datatr_'+attrib +' .TextFilter').trigger("blur");	
		}else if (searchSpecs[attrib]["filterClass"] == "SelectFilter"){
			$('#datatr_'+attrib +' .SelectFilter').prop('selectedIndex', 0);	
		}else if(searchSpecs[attrib]["filterClass"] == "RangeFilter"){
			$('#datatr_'+attrib +' .RangeFilter select').prop('selectedIndex', 0);
			$('#datatr_'+attrib +' div.customRange').hide();
			$('#datatr_'+attrib +' div.customRange input').val('');
		}
		$('#datatr_'+attrib).show();
		$(this).addClass('active');

		$('#filterHeader').html(searchSpecs[attrib]["label"]);
	
	});	

	$('.filter_top').click(function(event) {
		$("#filterRegion").toggle('fast');
		$('#filterHide').toggleClass("filtersShow");
	});	
	
	$('#searchGo').click(function(event) {
		var buff = new StringBuffer();
		buff.append(buildParamUrl());
	
		this.href = '?'+buff.toString();
		window.location = this.href;
	});
	
	$('.addCriteria').click(function(event) {
		var attrib = this.id.substring(0, this.id.indexOf('_'));
		//push the data.
		
		
		if(searchSpecs[attrib]["filterClass"] == 'TextFilter'){
			var val = $('#'+attrib+'_input').val().trim();
			if(val != '' && val != searchSpecs[attrib]["defalutText"])
				selectOnfilter(attrib,val);
		}else if(searchSpecs[attrib]["filterClass"] == 'SelectFilter'){
			var val = $('#'+attrib+'_select').val().trim();
			if(val != '')
				selectOnfilter(attrib, val);
		}
		else{
			if($('#'+attrib+'_rangeWrap .customRange').css('display') == 'none'){
				selectOnRange(attrib);
			}else{
				selectOnRange(attrib, true);
			}
		}
	});
	
	makeFilterEdits();
	
	$('.filterClear').click(function(event) {
		makeClearAllEdit();
	});
	
	$('#sortBy').change(function(event) {
		var sorByVal = $(this).val();
		
		if(sortSpec.defaultSortDir[sorByVal] == 'asc'){
			$('.sortDir').attr('id', "sortDesc");
		}else{
			$('.sortDir').attr('id', "sortAsc");
		}
		
		
		$('#searchGo').trigger("click");	
	});
	
	showAppliedFilters();

	// sort Direction
	
	$('.sortDir').click(function(event) {
		// set the proper data over the element.
	//if($(this).hasClass('active'))
	//	return;
		
	//$('.sortDir').removeClass('active');
	if($(this).attr('id') == 'sortAsc'){
		$(this).attr('id', "sortDesc")
	}else{
		$(this).attr('id', "sortAsc")
	}
	//$(this).addClass('active');
	
	
	$('#searchGo').trigger("click");
	});
	
	$('.TextFilter').focus(function(event) {
		var id = fetchIdentifier($(this).attr('id'), 0, '_');
		form_focus(this, searchSpecs[id].defalutText);
	});
	$('.TextFilter').blur(function(event) {
		var id = fetchIdentifier($(this).attr('id'), 0, '_');
		form_focus_out(this, searchSpecs[id].defalutText);
	});

	$('.rangeInputs.from,.rangeInputs.to').blur(function(event) {
		var id = fetchIdentifier($(this).attr('id'), 0, '_');
		if(searchSpecs[id].isNumeric == true){
			var from_val = $('#'+id+'_from').val();
			var to_val = $('#'+id+'_to').val();
			var resObj = isValidRange(id, from_val.trim() , to_val.trim());
			
			if(resObj.isValid == false){
				$('.rangeInputs.labelerror').html(resObj.message);
				return ;
			}else{
				$('.rangeInputs.labelerror').html('');
			}
		
			
		}
	});
	
	applyFilterHover();
}

function applyFilterHover(){
	$('.filterTextArea').unbind('blur');
	
	// text and select filters
	$('.filterTextArea').blur(function(event) {
		// find the text areA :
		$(this).prev('div').html($(this).val());
		// copy the text area value in data div.
	});
	
/*	$('.fromtoDiv input').unbind('blur');
	$('.fromtoDiv input').blur(function(event) {
		// find the text areA :
		var val = {};
		
		if($(this).hasClass("from")){
			val.from = $(this).val();
			val.to = $(this).siblings('input').val();
		}else{
			val.to = $(this).val();
			val.from = $(this).siblings('input').val();
			
		}
		
		var attrib = $(this).closest('tr').attr('id');
		// dump the new html in the div
		if(val.to!= '' || val.from!='')
			$(this).parent().siblings(".filterTextDiv").html(getRangeHtml(attrib, val));
		else
			$(this).parent().siblings(".filterTextDiv").html("");
			
		//getRangeHtml(attr, val);
		
	});
*/	
	
}


function showAppliedFilters(){
	var show = $('.filterDetails tr').length > 2 ? true : false;
	
	if(show){
		$('.filterDetails').show();
	}
}

function makeClearAllEdit(){

	var filterRow = $('td.datatd textarea', $('.filterDetails'));
	editFilters(filterRow, true);
	
	var filterRow = $('td.datatd div.filterTextDiv', $('.filterDetails'));
	editFilters(filterRow, true);
}
function editFilters(filters, clear){
	for(var i = 0; i < filters.length; i ++){
		if(clear){
			var elem = filters.get(i);
			if($(elem).is("input")){
				$(elem).val('');
			}else if ($(elem).is("textarea")){
				$(elem).val("");
			}else if ($(elem).is("div")){
				$(elem).html('');
			}

		}
	}
}

function makeFilterEdits(){
	$('.plusLink, .minusLink').unbind('click');
	
	$('.plusLink').click(function(event) {
		var attrib = fetchIdentifier(this.id, 0, '_');
		/*
		var filterRow = $('#'+attrib+' textarea', $('.filterDetails'));
		$(filterRow).show();
		editFilters(filterRow);
		var filterRowDivs = $('#'+attrib+' div.filterTextDiv', $('.filterDetails'));
		$(filterRowDivs).hide();
		*/
		
		$('#'+attrib+'_radios').trigger("click");	
	});
	$('.minusLink').click(function(event) {
		var attrib = fetchIdentifier(this.id, 0, '_');
		var filterRow = $('#'+attrib+' textarea', $('.filterDetails'));
		//$(filterRow).show();
		editFilters(filterRow, true);
		var filterRowDivs = $('#'+attrib+' div.filterTextDiv', $('.filterDetails'));
		editFilters(filterRowDivs, true);
		//$(filterRowDivs).hide();
	});
}

function buildParamUrl(currPageNum){
	// fetch all the attributes thru table
	var buff = new StringBuffer();
	$('.filterDetails .filters').each(function(index) {
/*		if($(this).hasClass("RangeFilter_data")){
			var paramName = searchSpecs[(this).id]["urlParam"];
			var from = $(this).find('.datatd .from').val().trim();
			if(from != ''){
				buff.append('&'+paramName+'From');
				buff.append('='+escape(from));
			}
			var to =  $(this).find('.datatd .to').val().trim();
			if(to != ''){
				buff.append('&'+paramName+'To');
				buff.append('='+escape(to));
			}
		}else{
			var val = ($(this).find('.datatd textarea').val().trim());
			if(val != ''){
				var paramName = searchSpecs[(this).id]["urlParam"];
				buff.append('&'+paramName);
				buff.append('='+escape(val));
			}
		}
*/
		var val = ($(this).find('.datatd textarea').val().trim());
		if(val != ''){
			var paramName = searchSpecs[(this).id]["urlParam"];
			buff.append('&'+paramName);
			buff.append('='+escape(val));
		}		
	});
	
	// append page num
	buff.append("&page=");
	buff.append(currPageNum ? currPageNum : 1);	
	
	// append sort option : 
	if($('#sortBy').val() != ''){
		buff.append("&sort=");
		buff.append(escape($('#sortBy').val()));
	}
	buff.append("&sortDir=");
	buff.append(getSortDir());
	
	return buff.toString();
	
}

function getSortDir(){
	if($('.sortDir').attr('id') == 'sortAsc'){
			return 'desc';
	}else{
		return 'asc';
	}
}

function processFilterSearchResults(searchResult){
	var returnObj = [];
	for ( var int = 0; int < searchResult.length; int++) {
		var vals = {};
		if(searchResult[int].desc)
			vals.label = searchResult[int].name +'('+searchResult[int].desc +')';
		else
			vals.label = searchResult[int].name;	
		vals.value = searchResult[int].name;
		vals.desc = searchResult[int].desc;
		returnObj.push(vals);
	}
	return returnObj;
}

jQuery(document).ready(function (event) {
	$('#logoutAction').click(function(event) {
		try{
		siteAjax.getViaAjax({
			  url : '/Login/logout.htm',
			  dataType: 'json',
			  type  :    'GET',
			  success : function(data){
				  try { 
						siteAjax.getViaAjax({
					  		url : '/blog/wp-login.php?action=logout&redirect=false',
					  		dataType: 'json',
								  type  :    'GET',
								  success : function(data){			  	
									window.location.reload();
							  	  },
								  failure : function(data){			  	
									window.location.reload();
							  	  }			 
						});	
				  } catch(e) {window.location.reload();}
		  	  }		 
		});
	
		}catch(e){
			alert(e);
		}	
	});	
});

/*Table Description */

jQuery(document).ready(
	function (event) {
	    var sBox= $(".tpStkReco");
	    sBox.append(Messages.TDESC_STOCK_RECO);
	    
	    var sBox= $(".tpRankAlys");
	    sBox.append(Messages.TDESC_TOP_ANAL);
	    
	    var sBox= $(".stockCover");
	    sBox.append(Messages.TDESC_STOCK_COVER);
	    
	    var sBox= $(".analyCover");
	    sBox.append(Messages.TDESC_ANALY_COVER);
	    
	    var sBox= $(".mostrecostocks");
	    sBox.append(Messages.TDESC_MOST_RECO_STOCKS);
	    
});
/* home page image captions */
jQuery(document).ready(
		function()		
		{
		$('#stk_cov_cap').html(Messages.CAPTION_STOCK_IMAGE);	
		$('#alys_cov_cap').html(Messages.CAPTION_ANALYST_IMAGE);
		$('#most_reco_cap').html(Messages.CAPTION_MOST_RECO_IMAGE);
});


$(document).ready(function() {

	//Select all anchor tag with rel set to tooltip
	$('td[rel=tooltip1]').mouseover(function(e) {
		
		//Grab the title attribute's value and assign it to a variable
		var tip = $(this).attr('title');
		//alert(tip);
		if(tip !== "" && tip !== undefined  && tip !== "undefined") {
			//Remove the title attribute's to avoid the native tooltip from the browser
			$(this).attr('title','');
		
			//Append the tooltip template and its value
			$(this).append('<div id="tooltip1"><div class="tipBody">' + tip + '</div></div>');			
				
			//Show the tooltip with faceIn effect
			$('#tooltip1').fadeIn('500');
			$('#tooltip1').fadeTo('10',0.9);
		}
		
	}).mousemove(function(e) {
	
		//Keep changing the X and Y axis for the tooltip, thus, the tooltip move along with the mouse
		$('#tooltip1').css('top', e.pageY + 10 );
		$('#tooltip1').css('left', e.pageX + 20 );
		
	}).mouseout(function() {
	
		//Put back the title attribute's value
		$(this).attr('title',$('.tipBody').html());
	
		//Remove the appended tooltip template
		$(this).children('div#tooltip1').remove();
		
	});

});

// autocomplete options for Profession text field in my-account form

$(document).ready(function() {
	var availableTags = [
		"Student",
		"Software engineer",
		"Project manager",
		"Other",
	];
	$( "#tags" ).autocomplete({
		source: availableTags
	});
});

// function for sliding description-rows in my account page

$(document).ready(function() {
    // hides the sliding rows as soon as the DOM is ready
     $('#sli-row_investin').hide();
     $('#sli-row_investstyle').hide();
     $('#sli-row_investstr').hide();
     $('#sli-row_investhori').hide();
     $('#sli-row_investcap').hide();
     $('#sli-row_investalys').hide();
     $('#sli-row_investbeta').hide();
    // toggles the row for "I invest in"
     $('#qmark_investin').click(function() {
       $('#sli-row_investin').slideToggle(700);
       return false;
     });
    // toggles the row for "investment style"
     $('#qmark_investstyle').click(function() {
         $('#sli-row_investstyle').slideToggle(700);
         return false;
       });
     // toggles the row for "investment strategy"
     $('#qmark_investstr').click(function() {
         $('#sli-row_investstr').slideToggle(700);
         return false;
       });
     // toggles the row for "investment time horizon"
     $('#qmark_investhori').click(function() {
         $('#sli-row_investhori').slideToggle(700);
         return false;
       });
     // toggles the row for "market cap"
     $('#qmark_investcap').click(function() {
         $('#sli-row_investcap').slideToggle(700);
         return false;
       });
     // toggles the row for "analyst type"
     $('#qmark_investalys').click(function() {
         $('#sli-row_investalys').slideToggle(700);
         return false;
       });
     // toggles the row for "beta level"
     $('#qmark_investbeta').click(function() {
         $('#sli-row_investbeta').slideToggle(700);
         return false;
       });
   });

/* myaccount page sliding descriptions */
jQuery(document).ready(
		function()		
		{
		$('#sli-row_investin').html(Messages.MYACC_ROW_INV_IN);
		$('#sli-row_investstyle').html(Messages.MYACC_ROW_INV_STY);
		$('#sli-row_investstr').html(Messages.MYACC_ROW_INV_STR);
		$('#sli-row_investhori').html(Messages.MYACC_ROW_INV_HORI);
		$('#sli-row_investcap').html(Messages.MYACC_ROW_INV_CAP);
		$('#sli-row_investbeta').html(Messages.MYACC_ROW_INV_BETA);
		$('#sli-row_investalys').html(Messages.MYACC_ROW_INV_ALYS);		
});


