function uiDoOnLoad_WPA(){

   //if(document.getElementById("uiPostPrivacyType").value == 2)
	//	document.getElementById("uiPostPskType").value=0;
   jslSetValue("uiViewGroupInterval","uiPostGroupInterval");
   jslSetValue("uiViewServerIp","uiPostServerIp");
   jslSetValue("uiViewPort","uiPostPort");
   jslSetValue("uiViewSecret","uiPostSecret");

   if(document.getElementById("uiPostPskType").value != "")
       uiSelectPskType(document.getElementById("uiPostPskType").value);
   else
   	   uiSelectPskType('0');
}

function uiDoSave_WPA()
{
	var type = document.getElementById("uiPostPskType").value;
	
	jslViewToPostCheckBox("uiPostAPEnabled", "uiViewAPEnabled");
	jslSetValue("uiPostSSID", "uiViewSSID");
	jslSetValue("uiPostFwdSSID", "uiViewSSID");
	jslSetValue("uiPostChannel", "uiViewChannel");
	jslSetValue("uiPostFwdChannel","uiViewChannel");
	jslSetValue("uiPostGroupInterval", "uiViewGroupInterval");
	
	
	//jslDisable("uiPostPskValue");
	//jslDisable("uiPostPskType");
	jslEnable("uiPostServerIp");
	jslEnable("uiPostPort");
	jslEnable("uiPostSecret");
//	document.getElementById("uiPostPrivacyType").value = 3;
	if (type == "0")
	{
		jslSetValue("uiPostServerIp", "uiViewServerIp");
		jslSetValue("uiPostPort", "uiViewPort");
		jslSetValue("uiPostSecret", "uiViewSecret");
		jslDisable("uiPostPskValue");
	}
	else if (type == "1")
	{
	 	jslSetValue("uiPostPskValue", "uiViewPskHexValue");
	}
	else if(type == "2")
	{
	 	jslSetValue("uiPostPskValue", "uiViewPskStringValue");	
	}
	else
		jslDisable("uiPostGroupInterval");
	
	if((uiDoValidate_WPA(type)==true) && (uiDoValidate()==true)) 
	{
		//for ( var i=0; i<document.getElementById("uiPostWPAForm").length;i++)
		//	alert(document.getElementById("uiPostWPAForm").elements[i].name+" = "+document.getElementById("uiPostWPAForm").elements[i].value + "("+document.getElementById("uiPostWPAForm").elements[i].disabled+")");
		jslFormSubmit("uiPostWPAForm");
	}
}

function uiDoValidate_WPA(type){
   var message;
   if(type == "0")
   {
		var port = parseInt(document.getElementById("uiPostPort").value);
		message = valDoValidateIP(document.getElementById("uiPostServerIp").value);
		if ((port < 0) || (port > 65535) || isNaN(port))
		{
		 alert ("Port out of range.");
		return false;
		}
		
		if(document.getElementById("uiPostSecret").value.length == 0)
		{
			alert ("Invalid secret");
			return false;
		}
   }
   if(type == "1")
   {
	/* TODO This shd probably be only digits*/
		if ((document.getElementById("uiPostPskValue").value.length < 8)||(document.getElementById("uiPostPskValue").value.length > 64) || (document.getElementById("uiPostPskValue").value.match("[^0-9a-fA-F]") != null))
		{
			alert ("Invalid PSK Hex Value");	
			return false;
		}
	}
	if(type == "2")
	{
		if((document.getElementById("uiPostPskValue").value.length < 8)||(document.getElementById("uiPostPskValue").value.length > 63))
		{
			alert ("Please input 8 to 63 characters for a valid PSK String");	
			return false;
		}
    }
	
   if ((document.getElementById("uiPostGroupInterval").value.length == 0) || parseInt(document.getElementById("uiPostGroupInterval").value) < 0)
   {
      alert ("Invalid Group Interval");	
      return false;
   }
   alert ("Privacy type is set to WPA. Multiple SSID support will be disabled");	
   return true;
}
function uiSelectPskType(value){

   if(value == '0'){
      jslDoToggleRadio("uiViewPskType",0, 3);
   }
   if (value == '1'){
      jslDoToggleRadio("uiViewPskType", 1, 3);
      jslSetValue("uiViewPskHexValue", "uiPostPskValue");	
   }else if(value == '2'){
      jslDoToggleRadio("uiViewPskType", 2, 3);
      jslSetValue("uiViewPskStringValue", "uiPostPskValue");	
   }
   uiCheckWpaType(value);
}

function uiChangePskType(arg){
   document.getElementById("uiPostPskType").value = arg;
   uiCheckWpaType(arg);
}

function uiCheckWpaType(value){
   switch (value){
      case "0": // 802.1x. TODO Grey out others.
         doPsk8021x();
	 break;
      case "1": //PSK Hex
 	 doPskHex();
	 break;
      case "2": //PSK String
 	 doPskString();
	 break;
      default:
	 doPsk8021x();
	 break;
   }
}

function doPsk8021x(){
   jslEnable("uiViewServerIp");
   jslEnable("uiViewPort");
   jslEnable("uiViewSecret");
   jslEnable("uiViewGroupInterval");
   jslDisable("uiViewPskHexValue");
   jslDisable("uiViewPskStringValue");
   //document.getElementById("uiPostPrivacyType").value = 2;
   document.getElementById("uiPostPrivacyType").value = 1;
   document.getElementById("uiPostPskType").value = 0;
}

function doPskHex(){
   jslEnable("uiViewPskHexValue");
   jslEnable("uiViewGroupInterval");
   jslDisable("uiViewPskStringValue");
   jslDisable("uiViewServerIp");
   jslDisable("uiViewPort");
   jslDisable("uiViewSecret");
   document.getElementById("uiPostPrivacyType").value = 1;
   document.getElementById("uiPostPskType").value = 1;
}

function doPskString(){
   jslEnable("uiViewPskStringValue");
   jslEnable("uiViewGroupInterval");
   jslDisable("uiViewPskHexValue");
   jslDisable("uiViewServerIp");
   jslDisable("uiViewPort");
   jslDisable("uiViewSecret");
   document.getElementById("uiPostPrivacyType").value = 1;
   document.getElementById("uiPostPskType").value = 2;
}
