// global variable
// determine whether the state source is ip detection or not
var isIpDetection = false;

(function($){ 
	var loadMessage = "Verifying your location...";
	var loadDelay = 2000;
	var force = true;
	var userState = $("#mainContent_stateDropdown").val();
	try {
		google.load("search", "1");
	} catch(error) {} // loading search
	$( function() {
		
		// call stateChanged whenever the dropdown value changes
	    $("#mainContent_stateDropdown").change(stateChanged);
		
	    //pulls the users location from google
	    var location = '';
	     //google.loader.ClientLocation =
		 //{"latitude":42.359,"longitude":-71.061,"address":{"city":"Boston","region":"MA","country":"USA","country_code":"US"}};
	    try {
		    if (google.loader.ClientLocation) {
		      var loc = google.loader.ClientLocation;
		      if(loc && loc.address && loc.address.region)
		        location = loc.address.region;
		    }
	    } catch(error) {}
	    	
	    // if the dropdown has no value selected try to populate it from session
		// or google
	    var contents = $("#plansHolder").html();
	    if($("#mainContent_stateDropdown").getSelectedIndex() <= 0 || contents.indexOf("mp-table") == -1){
	        // if the user has a stored state from a previous use then load it, otherwise pull it from google.
	        if($("#mainContent_stateDropdown").getSelectedIndex()<=0){
	    		  setState(findState(eval(stateJson),location));
	        	// keep track that this is a state arrived at by IP
	  			isIpDetection = true;
	    	}
            stateChanged();
	    }else{
	    	//if the dropdown has a value selected it will be loaded by .net, so just show the print button and track the state
	        $(".hidePrint").css("display","inline");
	        loadDelay = 1000;
	        loadMessage = "&nbsp;";
	    }
	    force = false;
	    
	});
	
	/**
	 * sets the dropdown to a specific state
	 */
	function setState(state){
	    $("#mainContent_stateDropdown").setSelectedValue(state);
	    userState = state;
	}
 
	function findState(eformularyStateArray,googleLocation){
		if(eformularyStateArray.length > 0){
			for (var i=0; i<eformularyStateArray.length;i++) {
				if(eformularyStateArray[i].stateAbbr==googleLocation){
					return eformularyStateArray[i].stateName;
				}
			}
        }
		return '';
	}
	
	var t; 
	function stateChanged(){
	    if($("#mainContent_stateDropdown option:selected").text() != "Select" || force){
	        $("#plansHolder").html("<div class='loading'><p>" + loadMessage +"</p></div>");
	        $("#stateDisplay").html( "" );
	        $("#statePrintDisplay").html( "" );   
	        
	        clearTimeout(t);
	        t = setTimeout(function(){
	                getStatePlans();
	                if($("#mainContent_stateDropdown option:selected").text() != "Select"){
	                    $.cookie('state', $("#mainContent_stateDropdown option:selected").text(), {path:"/"});
	                    $("#stateDisplay").html( $("#mainContent_stateDropdown option:selected").text() );
	                    $("#statePrintDisplay").html( $("#mainContent_stateDropdown option:selected").text() );
	                }

	        }, loadDelay);
	        
	        loadMessage = "&nbsp;";
	        loadDelay = 1000;
	    }
	    if(userState !=  ""){
			var activityname = "EFormularyTopPlans";
			var stateName = $("#mainContent_stateDropdown").val();
			if(stateName != "" && userState != stateName){
				var itemid = ",8";
				var stateArray = eval(stateJson);
				for(var i = 0; i < stateArray.length; i++){
					//alert(stateArray[i].stateName + ":" + stateArray[i].stateAbbr);
					if(stateName == stateArray[i].stateName){
						//alert("stateName:" + stateName + "###stateAbbr:" + stateArray[i].stateAbbr);
						itemid = stateArray[i].stateAbbr + itemid;
						break;
					}
				}			
				$.ajax({
					type: "GET",
					url: ctx + "/activityTrackingER1.page?statetracking=true&activityname=" + activityname + "&itemid=" + itemid,
					cache: false,
					error: function(data){
						console.log('' + data);
					},								
					success: function(data) {				
						//console.log("success!");
					}
				});				
			}	    	
	    }
	}

	// specific calls for the ping
	function getStatePlans(){		
		var url=ctx+'/nexium-resources/getStatePlans.json';
		var qsData = {'state':$("#mainContent_stateDropdown").getSelectedValue()};
	    $.ajax({
	       type: "get",
		   url: url,
		   data: qsData,
		   dataType:"json",
		   beforeSend: function(){
	    	 
	       },
		   success: function(msg){
	    	  $("#plansHolder").html(msg.json);
	    	  $(".hidePrint").css("display","inline");
		   },
		   complete: function(XMLHttpRequest, textStatus){
			    //alert("complete");
		   },
		   error: function(xhr,status){
			  if ( xhr.status > 200 && xhr.status <= 500 ){
				  alert("error comminucation.");
			  }
		   }
		});
	}
	
	function statePlansFailed(){
		//setInnerHTML('loadingMessageContent', 'The service is unavailable, please try again later.<br\> <a href="#" onclick="javascript:mainClose();">Close Window</a>');
	}
	
})(jQuery);

function printMajorPlans(){
	//$("#print-page").attr("href", ctx + "/styles/print-formulary-tabone.css");
    print();
}




