/* On Load Event Hooker */
function addLoadEvent(func) {
  var oldonload = window.onload;
  if (typeof window.onload != 'function') {
    window.onload = func;
  } else {
    window.onload = function() {
      if (oldonload) {
        oldonload();
      }
      func;
    }
  }
}

function addBodyLoadEvent()
{
 window.onunload = refreshpage;
}

/* On Load Events */
addLoadEvent(OnLoadExpandProviders);
addBodyLoadEvent();

/* Expand Element */
function expand(obj)
{
	var panel = document.getElementById(obj)
	if (panel.style.display != "block")
	{
		panel.style.display = "block";
	}
}


function refreshpage()
{
 var searchprogresspanel = document.getElementById('pnlSearchProgress');
 if(searchprogresspanel!=null)
 {
 searchprogresspanel.style.display = "none";
 }
}

function expandProgressPanel()
{
 var searchprogresspanel = document.getElementById('pnlSearchProgress');
    if(Page_ClientValidate())
      {
      searchprogresspanel.style.display = "block";
      }
}

function RefreshImage(obj,src) 
{
	var image = document.getElementById(obj);
	image.src = src;
}


/* Contract Element */
function contract(obj)
{
	var panel = document.getElementById(obj)
	if (panel.style.display == "block")
	{
		panel.style.display = "none";
	}
}

/* Contract and Expand Toggle */
function expandToggle(obj)
{
	var panel = document.getElementById(obj)
	if (panel.style.display != "block")
	{
		panel.style.display = "block";
	}
	else
	{
		panel.style.display = "none";
	}
	
}

/* On load Expand Provider Div */
function OnLoadExpandProviders()
{
	var obj = document.getElementById("rbExistingProviderYes");
	if(obj != null)
	{
		if(obj.checked)
		{
			var panel = document.getElementById("provider-questions");
			panel.style.display = "block";
		}
	}
}

/* Trim element */
function trim(str)
{
	return str.replace(/^\s*|\s*$/g,"");
}


/* Progress Input */ 

function ProcessMouseOver(num, id)
{
   var color = "";
   if(num < 4)
   {
      color = "red";
   }
   else if (num < 7)
   {
      color = "orange";
   }
   else
   {
      color = "green";
   }

   for (i = 1; i <= 10; i++)
   {

      if(i == 1)
      {
           ProcessImageChange(i,num,1,color,id);

      }
      if (i > 1 & i < 10)
      {
           ProcessImageChange(i,num,2,color,id);
      }
      if(i == 10)
      {
           ProcessImageChange(i,num,3,color,id);
      }
   }
   
   var ptext = document.getElementById(id + "_pProgressText");
   ptext.innerHTML = num + "/10";
}

function ProcessImageChange(i, num, img, color, id)
{
   var path = "/images/channel/broadband/progressinput/";
   
   var image = document.getElementById(id + "_ProgressIndicatorImage" + i);

   if(i <= num)
   {
       image.src = path + color + img + ".png";
   }
   else
   {
       image.src = path + "gray" + img + ".png";
   }
}

function Postback()
{
    this.doPostback();
}

function ProcessMouseOut(id)
{
   var pvalue = document.getElementById(id + "_hfProgressInputHiddenValue")
   ProcessMouseOver(pvalue.value,id);
}

function ProcessClick(num,id)
{
   var pvalue = document.getElementById(id + "_hfProgressInputHiddenValue")
   pvalue.value = num;
   ProcessMouseOver(pvalue.value,id);
}


//******************************************************************************
// FUNCTION:	TextEntryLimit
//******************************************************************************
// DESC:		Determines if entry limit has been reached
// PARAMS:		objEvent -	element
//******************************************************************************
function TextEntryLimit(objEvent)
{

	// Get the event source
	if(objEvent)
	{
		var intMaxLength = objEvent.getAttribute("MaxLength");
		
		if(objEvent.value.length == (intMaxLength*1))
		{
			return false;
		}
	}
}


//******************************************************************************
// FUNCTION:	TextCounter
//******************************************************************************
// DESC:	Decrements the counter element
// PARAMS:	obj -	    element
//			id  -	    the id of the element to decrement the innerHTML
//					    (i.e. <span id=count />
//          intLength - Length of text allowed
//******************************************************************************
function TextCounter(objEvent, charCountId, wordCountId, intLength)
{ 
    var intMaxLength = intLength;
    
	if(objEvent)
	{
		var intTextLength = objEvent.value.length;
		var intCount = (intMaxLength - intTextLength);

		if (intTextLength > (intMaxLength*1))
		{
			objEvent.value = objEvent.value.substring(0,(intMaxLength*1));
		}									
		
		if (charCountId && wordCountId)
		{
			// If count is a number			
			if(!isNaN(intCount))
			{
				var objCounterText = document.getElementById(charCountId);
				var objWordCounterText = document.getElementById(wordCountId);
				// If there is an element
				if(objCounterText)
				{
					if (intTextLength-1 < intMaxLength)	{
						objCounterText.innerHTML = intCount;
					    objWordCounterText.innerHTML = intCount/5;
					}
				}
			}
		}
	}
}
//******************************************************************************
// FUNCTION:	ValidatePostCode
//******************************************************************************
// DESC:	Validates post code
// PARAMS:	num -	    postcode value
//******************************************************************************
function ValidatePostCode(elementName)
	{  
	    var hidHtm= document.getElementById("htmHidden");	    
	    if(hidHtm.value == "true")
	    {
	        var inputBox = document.getElementsByName(elementName)[0];	 	         	           	    
	    }
	    else
	    {
	        var inputBox = document.getElementsByName(elementName)[0];	    	           	    	       
	        
	    }
	    var errorHeading = document.getElementById("errorMsgHeading");
	    errorHeading.style.display = "none";
	    var emptyPostCode = document.getElementById("errorMsgEmptyPostCode");
	    emptyPostCode.style.display = "none";	 
	    var invalidPostCode = document.getElementById("errorMsgInvalidPostCode");
	    invalidPostCode.style.display = "none";	    
	    var pcodeRegxp=/^((([A-PR-UWYZa-pr-uwyz])([0-9][0-9A-HJKS-UWa-hjks-uw]?)\s{0,1}(([0-9])([ABD-HJLNP-UW-Zabd-hjlnp-uw-z])([ABD-HJLNP-UW-Zabd-hjlnp-uw-z])))|(([A-PR-UWYZa-pr-uwyz][A-HK-Ya-hk-y])([0-9][0-9ABEHMNPRV-Yabehmnprv-y]?))\s{0,1}(([0-9])([ABD-HJLNP-UW-Zabd-hjlnp-uw-z])([ABD-HJLNP-UW-Zabd-hjlnp-uw-z])))|(((GIgi)(Rr))\s{0,1}((0)(Aa)(Aa)))$/;
	    
	    postcode =trim(inputBox.value);	    
	    if(postcode == "")
	    {
	        errorHeading.style.display = "block";
	        emptyPostCode.style.display = "list-item";	      
	        inputBox.value="";
	        return false;
	    }
	    if(!(pcodeRegxp.test(postcode))) 
	    {	   
	         errorHeading.style.display = "block";
	        invalidPostCode.style.display = "list-item";	 
	        inputBox.value="";
	        return false;
	    }	    
	    return true; 
	      
	}
	
	
//******************************************************************************
// FUNCTION:	ShowSpeedTestControl
//******************************************************************************
// DESC:		Determines if the Current Provider and Speed have been supplied
//              and if so displays the Speed Test control
//******************************************************************************
function ShowSpeedTestControl(dropdownName)
{
    var providerDropdown = document.getElementById("ddlProviders");
    var speedDropdown = document.getElementById("ddlSpeed");
    var divDropdowns = document.getElementById("divCurrentDropdowns");
    var divSpeedTest = document.getElementById("divSpeedTestActive");
    var divSpeedTestImage = document.getElementById("divSpeedTestImage");
    
    if (providerDropdown.selectedIndex > 0 && speedDropdown.selectedIndex > 0)
    {
        if (divSpeedTest.className != "msfg-speedtest")
        {
            divSpeedTest.className = "msfg-speedtest";
            divSpeedTestImage.className = "msfg-hidden";
            providerDropdown.disabled = true;
            speedDropdown.disabled = true;
        }
    }
    else
    {
        if (divSpeedTest.className != "msfg-hidden")
        {
            divSpeedTest.className = "msfg-hidden";
            divSpeedTestImage.className = "msfg-speedtest";
        }
    }
    
}
