	
	
//var selectedTalkplan = "";
//var selectedContractLength = "";

var contractLengthComplete = false;
var contractTalkplanComplete = false;
var informationChanged = false;

function buildQueryUrl(action) {
	var url = "";
	try {
		var url = "/wcm/site/pages/queryDropdownRequest.aspx";
		url = url + "?action=" + action + "&continuitysessionid=" + document.getElementById("csessionid").value;
		
		//if talkplan chosen add to querystring
		if (selectedTalkplan != '') 
			url += "&talkplan=" + selectedTalkplan;
			
		//if contract length chosen add to querystring
		if (selectedContractLength != '') 
			url += "&contract_length=" + selectedContractLength;
			
		document.getElementById ("debug").value += "\r\n" + url;
		
	} catch (e) {
		alert (e.message);
	}
	
	return url
	
}


function updateDropdowns () {
	try {
		//show wait message 
		document.getElementById ("wait").style.display='block';
		
		contractLengthComplete = false;
		contractTalkplanComplete = false;


		//update contract length dropdown

		new Ajax.Updater ('contract_length', buildQueryUrl ("contractlengths"), 
				{
					method: 'get',
					onComplete: function() {
						contractLengthComplete = true; // mark complete
						if (contractLengthComplete && contractTalkplanComplete) 
							document.getElementById ("wait").style.display='none';
							
						repopulate("contract_length");
						document.getElementById ("originalcontract_length").value=document.getElementById ("contract_length").value;
					}
				}
			);
		new Ajax.Updater ('talkplan', buildQueryUrl ("talkplan"), 
				{
					method: 'get',
					onComplete: function() {
						contractTalkplanComplete = true; // mark complete
						if (contractLengthComplete && contractTalkplanComplete) 
							document.getElementById ("wait").style.display='none';
							
						repopulate("talkplan");
						document.getElementById ("originaltalkplan").value=document.getElementById ("contract_length").value;
					}
				}
			);
	} catch (e) {
		alert (e.message);
	}
}




function repopulate(controlName) {
	try {
		var origValue = document.getElementById ("original" + controlName).value;
		var element = document.getElementById (controlName);
		for (var optCount=0;optCount < element.options.length;optCount++) {
			if (element.options[optCount].value == origValue)
				element.selectedIndex = optCount;
		}
	} catch (e) {
		alert (e.message);
	}
}






//choose contract length item
//update talkplans passing in chosen values
function queryContractLengthSelect() {
	selectedContractLength = document.getElementById ("contract_length").value;
	updateDropdowns();
}

function setInformationChanged(element){
	if( element ){
	
		if( (element.id == 'addon1' ) || (element.id == 'addon2' ) || (element.id == 'addon3' ) || (element.id == 'incorrectAddon') || (element.id == 'talkplan') ){
			var optionValue = element.options[element.selectedIndex].value;
			var toDealerValue = optionValue.substring( optionValue.indexOf( '[' ) + 1, optionValue.indexOf( ']' ) );	
			var elementId = "d" + element.id; //for cost value on querytype 1
			if (document.getElementById(elementId)) {
				var finalvalue = document.getElementById ("poundchar").value + toDealerValue;
				document.getElementById( elementId ).innerHTML = "";
				document.getElementById( elementId ).innerHTML = "(" + finalvalue + ")";
			}
		}

	}
	informationChanged = true;
}

function alertIfInformationChanged(){
	if( informationChanged == true ){
		return confirm( "Any information entered will be lost if you proceed.\nSelect \"Ok\" to proceed to unsubmitted queries or Select \"Cancel\" to go back and Submit this query" )
	}
}


//opens wildcard search window 
function openWildcardSearch (controlname, actionLookup, fields) {
	try {
		url = "/your_finance/commision_queries/search_item?wildcard=true&conn_date=" + document.getElementById ("conn_date").value + "&network_id=" + document.getElementById ("network_id").value + "&querytype=1&control=" + controlname + "&actionlookup=" + actionLookup;
		for (var n=0;n<fields.split(",").length;n++) {
			url += "&" + fields.split(",")[n] + "=" + document.getElementById (fields.split(",")[n]).value;
		}
		
		window.open (url, "search", "width=600,height=500,resizable=yes,scrollbars=yes");
	} catch (e) {
		alert (e.message);
	}	
}



//Wildcard functions
function getSelectedValue () {
			
	try {

		var i=1;
		var checkedValue = "";
		element = document.getElementById ("option" + i);
		while (element) {
			element = document.getElementById ("option" + i);
			if (element.checked) {
				return element.value;
			}
			i++;
		}
		
	} catch (e) {
		alert ("getSelectedValue:" + e.message);
	}
	
	return "";
}


function populateElement (elementName) {	
	try {
	
		var selectedValue = getSelectedValue();
		
		if (selectedValue) 
			if (selectedValue != "") {
			
				var openEl = window.opener.document.getElementById (elementName);
				
				//loop for all options in calling element and select value
				for (var i=0;i < openEl.options.length;i++) {
					var option = openEl.options[i];
					if (option.value == selectedValue)
						openEl.selectedIndex = i;
						
				}
				//Get the talkplan value from the selectedValue
				var toDealerValue = selectedValue.substring( selectedValue.indexOf( '[' ) + 1, selectedValue.indexOf( ']' ) );	
				var elementId = "d" + elementName;
				var finalvalue = window.opener.document.getElementById ("poundchar").value + toDealerValue;
				window.opener.document.getElementById( elementId ).innerHTML = "(" + finalvalue + ")";		
	
			}
			
		window.close();
	} catch (e) {
		alert ("populateElement:" + e.message);
	}
}

function hyperlinkClick( element ){
	var extraParam = "&javascriptEnabled=1";
	var currentURL = element.href;
	currentURL += extraParam;
	window.location = currentURL;
	return false;
}


$(window).bind ("load", function() {
	try {
	
		//auto populate talkplan price for query type 3
		if (document.getElementById ("querytype")) {
			if ($("#querytype").val() == "3") {
				var talkPlanElement = $("#talkplan");
				var paidValueElement = $("#paidvalue");
				var table = $(".trackerTableContainer");
				if (talkPlanElement && paidValueElement && table) {
					talkPlanElement.bind ("change", function() {
						talkPlanElement = $(this);
					
						var selectedTalkPlan = talkPlanElement.find ("option:selected").text();
						if (selectedTalkPlan.length > 0) {
							var td = table.find ("td:contains('" + selectedTalkPlan + "')");
							if (td.length > 0) {
								var priceTd = td.next ("td");
								var price = priceTd.html().replace ("&nbsp;", "");
								paidValueElement.val(price);
							}
						}
					
					});
					if (talkPlanElement.val().length > 0) {
						var selectedTalkPlan = talkPlanElement.find ("option:selected").text();
						if (selectedTalkPlan.length > 0) {
							var td = table.find ("td:contains('" + selectedTalkPlan + "')");
							if (td.length > 0) {
								var priceTd = td.next ("td");
								var price = priceTd.html().replace ("&nbsp;", "");
								paidValueElement.val(price);
							}
						}
					}	
				}
			}
		}
	} catch (e) {
		//alert (e.message);
	}
});


//if query type 11, add hook to clear dropdown data if a value is changed
$(window).bind ("load", function() {
	if (document.getElementById ("querytype")) {
		if ($("#querytype").val() == "11") {
			$("select").bind ("change", function() {
				var elementId = $(this).attr("id");
				if (elementId == "addon1")
					return;
				if (elementId == "addon2")
					return;
				if (elementId == "addon3")
					return;
				if (elementId == "talkplan")
					return;
				var nextDropdowns = $(this).nextAll("select");
				$.each (nextDropdowns, function(index, element) {
					this.selectedIndex = -1;
					//hide dropdown and label
					$(this).css ("display", "none");
					$(this).next("span").css ("display", "none");
					
					//alert ($(this).prev ("label").length);
					$($(this).prevAll("label")[0]).css ("display", "none");
				});
				//swap the submit button for a next button
				if (document.getElementById ("btnSave")) {
					var submitButton = $("#btnSave");
					var nextButton = $("<input type='submit'/>");
					nextButton.attr ("name", "btnNext");
					nextButton.attr ("id", "btnNext");
					nextButton.attr ("value", "Next");
					submitButton.replaceWith (nextButton);
				}
				
			});
		}
	}
});


function addChangeWarning(element, name) {
	var image = $("<img src='/WCM/system/img/nodes/information.png' />");
	image.css ("float", "left");
	image.css ("position", "absolute");
	var content = $("<p style='margin:0px; padding-left:40px; font-weight:bold;'>Please check the connection data present above and amend if required prior to query submission</p>");

	var queryHintContainer = $("<div class='queryhint'/>");	
	queryHintContainer.css ("position", "absolute");
	queryHintContainer.css ("width", "549px");
	queryHintContainer.css ("border", "1px solid #cccccc");
	queryHintContainer.css ("background-color", "#ffffff");
	queryHintContainer.css ("padding", "10px");
	queryHintContainer.css ("margin", "-22px 10px 10px 10px");
	queryHintContainer.css ("display", "none");
	queryHintContainer.css ("top", $("#imei").offset().top - 75);
	queryHintContainer.css ("left", "0");
	queryHintContainer.append (image);
	queryHintContainer.append (content);
	//queryHintContainer.append ($("<p>If you change " + name + ", all further form fields will be reset for you to re-select your options.</p>"));
	queryHintContainer.append ($("<p>NB: If either the connection type or contract length fields require amending you will be need to reenter all subsequent connection information by using the NEXT button.  This is due to valid talkplans and addons for a connection being dependant on the connection type and contract length.</p>"));
	
	
	element.data("hintelement",queryHintContainer);
	element.bind ("mouseover", function() {
		$(".queryhint").hide();
		$(this).data("hintelement").fadeIn();
	});
	element.bind ("mouseout", function() {
		$(this).data("hintelement").fadeOut();
	});
	

	element.after (queryHintContainer); 
}


/*$(window).bind ("load", function() {
	if (getParameterByName("querytype") == "11") {
		if ($("#connectiontype").length > 0)	
			if ($("#connectiontype").val().length > 0)
				addChangeWarning ($("#connectiontype"), "connection type");
		if ($("#contract_length").length > 0)	
			if ($("#contract_length").val().length > 0)
				addChangeWarning ($("#contract_length"), "contract length");
		if ($("#talkplan").length > 0)	
			if ($("#talkplan").val().length > 0)
				addChangeWarning ($("#talkplan"), "talk plan");
	}
});
*/

function getParameterByName( name )
{
  name = name.replace(/[\[]/,"\\\[").replace(/[\]]/,"\\\]");
  var regexS = "[\\?&]"+name+"=([^&#]*)";
  var regex = new RegExp( regexS );
  var results = regex.exec( window.location.href );
  if( results == null )
    return "";
  else
    return decodeURIComponent(results[1].replace(/\+/g, " "));
}
