// JavaScript Document

storage.onLoad(initialize);
      
      function initialize() {
        	//document.body.ondblclick = handleDblClick;
      }
      
      //function handleDblClick(e) {
      //  doStorage();
      //}
      
      function doStorage(action, frmName) {	
	  
        var keyName = frmName;
		var strJSON="";
		
		for(i=0; i< document.forms[frmName].length; i++){
			//alert(document.forms[0].elements[i].tagName);
			if(strJSON.lastIndexOf(document.forms[frmName].elements[i].id)==-1){
				strJSON += "\"" + document.forms[frmName].elements[i].id + "\":\"" + document.forms[frmName].elements[i].value + "\",";
			}
		}
		var pos=strJSON.lastIndexOf(',');
		strJSON = strJSON.substr(0,pos);
		var infoObject =  "{"+strJSON+"}";
		
        var keyValue = infoObject;        
        
        var statusHandler = function(status) {
          if (status == Storage.SUCCESS) {
            var results = storage.getString(keyName);
            //debug("Results from statusHandler=" + results);
          }
          else if (status == Storage.PENDING) {
            //debug("Results pending approval of storage space from user");
          }
          else {
            //debug("Storage request denied");
          }
        }
        
        //if (storage.hasKey(keyName) == false) {
		if(action=='save'){
          debug("PutString('" + keyName + "')");
		  //alert(keyValue);
          storage.putString(keyName, keyValue, statusHandler);
        }
        else {
          var results = storage.getString(keyName);
          debug("GetString('"+keyName+"')="+results);
        }
      }
      
	  function clearStorage(frmName){
		  
		var keyValue = 'Vendor Registration Complete';        
		var keyName = frmName;
        
        var statusHandler = function(status) {
          if (status == Storage.SUCCESS) {
            var results = storage.getString(keyName);
            //debug("Results from statusHandler=" + results);
          }
          else if (status == Storage.PENDING) {
            //debug("Results pending approval of storage space from user");
          }
          else {
            //debug("Storage request denied");
          }
        }
        
        //if (storage.hasKey(keyName) == false) {
		
          //debug("PutString('" + keyName + "')");
		  //alert(keyValue);
          storage.putString(keyName, keyValue, statusHandler);
	  }
	  
      function debug(msg) {
        document.getElementById("output").innerHTML += "<p>"+msg+"</p>";
      }
      
      function flashDebug(msg) {
        document.getElementById("output").innerHTML += "<p style='color: red;'>"+msg+"</p>";
      }
	  
	  function updateSO(elemID, frmName){
		  
		//alert(elemID + " - " + frmName);
		
	  	var statusHandler = function(status) {
          if (status == Storage.SUCCESS) {
            var results = storage.getString(document.forms[frmName].id);
            //debug("Results from statusHandler=" + results);
          }
          else if (status == Storage.PENDING) {
            //debug("Results pending approval of storage space from user");
          }
          else {
            //debug("Storage request denied");
          }
        }
		
		var soStr = storage.getString(document.forms[frmName].id, false);

		if(soStr=='Vendor Registration Complete') {return;}
		soObj = eval( "(" + soStr + ")" );
		//alert('JSON: ' + soObj);
		
		var strValue = $(elemID).value;		
		
		if(elemID=='WMBE_Code'){
			//alert('Parse WMBE_Code Radio Array');
			for (var x=0; x<document.forms[frmName].WMBE_Code.length; x++)  { 
				//alert(document.forms[frmName].WMBE_Code[x].value + " : " + soObj[i]);
				if (document.forms[frmName].WMBE_Code[x].checked)  {						
					strValue=document.forms[frmName].WMBE_Code[x].value;
				} 
			} 
		}
		
		if(elemID=='BusinessInformation'){
			for (var x=0; x<document.forms[frmName].BusinessInformation.length; x++)  { 
				//alert(document.forms[frmName].BusinessInformation[x].value + " : " + soObj[i]);
				if (document.forms[frmName].BusinessInformation[x].checked)  {						
					strValue = document.forms[frmName].BusinessInformation[x].value;	
				} 
			} 
		};
		
		if(elemID=='C_1099Exempt'){
			for (var x=0; x<document.forms[frmName].C_1099Exempt.length; x++)  { 
				//alert('JSON: ' + document.forms[frmName].BusinessInformation[x].value + " : " + soObj[i]);
				if (document.forms[frmName].C_1099Exempt[x].checked)  {						
					strValue = document.forms[frmName].C_1099Exempt[x].value;
					//updateSelected(soObj[i]);
				} 
			}	
		};
		
		if(elemID=='TaxID'){
			for (var x=0; x<document.forms[frmName].TaxID.length; x++)  { 
				//alert('JSON: ' + document.forms[frmName].BusinessInformation[x].value + " : " + soObj[i]);
				if (document.forms[frmName].TaxID[x].checked)  {						
					strValue = document.forms[frmName].TaxID[x].value;
					//updateSelected(soObj[i]);
				} 
			}	
		};
		
		if(elemID=='[object]'){
			elemID=elemID.id;	
		};
		
		if(elemID=='Tax_ID_Number'){
			strValue=encode(strValue, 'encrypt')
		}
		
		if(elemID=='Vendor_Supply_Name'){
			strValue = strValue.replace('&', '%26');
		}
		
		if(elemID=='zipOpt'){
			
			var rad = document.all.zipOpt;
			if(rad[0].checked){
				//alert("check 1");
				strValue='zipOpt1';
			}else if(rad[1].checked){
				//alert("check 2");
				strValue='zipOpt2';
			}else{
				strValue='';	
			}
		}
		//alert(elemID + ' : ' + strValue);
		soObj[elemID] = strValue;
		
		if(elemID!='[object HTMLSelectElement]'){	
		  	storage.put(frmName, soObj, statusHandler, true);
		}
		
		//alert('FSO Update Complete');
	  }
	  
	  function getFormStatus(frmName){
		  
		  var status = true;
		  var soStr = storage.getString(document.forms[frmName].id, false);
		  
		  if(soStr=='Vendor Registration Complete'){
		  		return false;
		  }
		  else if(soStr==null){
				doStorage('save', frmName);  
		  }
		  else{
				populateForm(frmName);  
		  }
		  
		  return(status);
	  }
	  
	  function populateForm(frmName){
		  
			//alert(frmName);
			var soStr = storage.getString(document.forms[frmName].id, false);
			
			soObj = eval( "(" + soStr + ")" );
			for(var i in soObj){
				var elem = i;	
				//alert('Elem: ' + i + ":" + soObj[i]);
		
				if(i=='Tax_ID_Number' && soObj[i].length!=0){
					var strValue = encode(soObj[i], 'decrypt');
					//alert(i + " : " + strValue);
					$(i).value=strValue;
				}else if(i=='WMBE_Code'){
					for (var x=0; x<document.forms[frmName].WMBE_Code.length; x++)  { 
						//alert(document.forms[frmName].WMBE_Code[x].value + " : " + soObj[i]);
						if (document.forms[frmName].WMBE_Code[x].value==soObj[i])  {						
							document.forms[frmName].WMBE_Code[x].checked=true;
						} 
					} 
				}else if(i=='BusinessInformation'){
					for (var x=0; x<document.forms[frmName].BusinessInformation.length; x++)  { 
						//alert(document.forms[frmName].BusinessInformation[x].value + " : " + soObj[i]);
						if (document.forms[frmName].BusinessInformation[x].value==soObj[i])  {						
							document.forms[frmName].BusinessInformation[x].checked=true;	
						} 
					} 
				}else if(i=='TaxID'){
					for (var x=0; x<document.forms[frmName].TaxID.length; x++)  { 
						//alert('TaxID: ' + document.forms[frmName].TaxID[x].value + " : " + soObj[i]);
						if (document.forms[frmName].TaxID[x].value==soObj[i])  {						
							document.forms[frmName].TaxID[x].checked=true;
							//updateSelected(soObj[i]);
						} 
					}
				}else if(i=='C_1099Exempt'){
					for (var x=0; x<document.forms[frmName].C_1099Exempt.length; x++)  { 
						//alert('JSON: ' + document.forms[frmName].BusinessInformation[x].value + " : " + soObj[i]);
						if (document.forms[frmName].C_1099Exempt[x].value==soObj[i])  {						
							document.forms[frmName].C_1099Exempt[x].checked=true;
							//updateSelected(soObj[i]);
							if(document.forms[frmName].C_1099Exempt[x].value=='Yes'){
								document.forms[frmName].C_1099ExemptReason.disabled=false;
							}
						} 
					}
				}else if(i=='C_1099ExemptReason' && document.forms[frmName].C_1099ExemptReason.disabled==false){
					document.forms[frmName].C_1099ExemptReason.value = soObj[i];						
				}else if(i=='Zip_Code'){
					ipc=false;	
					//$(i).disabled='';
					$('Zip_Code').value=soObj[i];
					//document.forms[frmName].zipOpt[0].checked=true;
					//$('mailingzipcode').disabled='';
					//$('shippingzipcode').disabled='';
					//$('remittancezipcode').disabled='';
				}else if(i=='ForeignZipCode' && soObj['zipOpt']=='zipOpt2'){
					$('Zip_Code').value=soObj[i];
					//document.forms[frmName].zipOpt[0].checked=true;
					//$('mailingzipcode').disabled='';
					//$('shippingzipcode').disabled='';
					//$('remittancezipcode').disabled='';
					
					/* ipc=true;	
					$(i).disabled='';
					$(i).value=soObj[i];					
					document.forms[frmName].zipOpt[1].checked=true; */
					
				}else if(i=='mailingforeignzipcode' && soObj[i]!=null){
					$('mailingzipcode').value=soObj[i];
				}else if(i=='shippingforeignzipcode' && soObj[i]!=null){
					$('shippingzipcode').value=soObj[i];
				}else if(i=='remittanceforeignzipcode' && soObj[i]!=null){
					$('remittancezipcode').value=soObj[i];
				}else if(i=='Vendor_Supply_Name'){					
					$(i).value=soObj[i].replace('%26', '&');
				}else{
					if(soObj[i]!=null && soObj[i]!='[object]' &&  i!='[object HTMLInputElement]'){
						if($(i)!=null){
						$('output').innerHTML = $('output').innerHTML + i + ' : ' + $(i).id + ' = ' +  soObj[i]  + '<br>';
						$(i).value=soObj[i];	
						}
					}
				}
				
			}
			
			
	  }
	  
	  function getSharedObject(frmName){
		  
		  var soStr = storage.getString(document.forms[frmName].id, false);
		  return soStr;
	  }
	  
	  function clearSharedObject(){
		 //alert('Clear Shared Object');
		 storage.clear();  
	  }