//Register Page Scripting
// NVMS, Inc. 2007
// J. Scott King

// Do Stuff OnLoad
//Client Tab Initiate //////////////////////////////////////////////////////////
	// Get My Tab
	var tpg1;
	var tpg2;
	
    window.onload = function()
    {
      tpg1 = new xTabPanelGroup('tpg1', 0, 780, 25, 'tabPanel', 'tabGroup', 'tabDefault', 'tabSelected');
      //tpg1.select(1);
      xAddEventListener(window, 'resize', winOnResize, false);
      SetBlurs();
    };
    
    function winOnResize()
    {
      if (!winOnResize.tmr) {
        winOnResize.tmr = setTimeout("tpg1.onResize();winOnResize.tmr=null;", 500);
      }
    }
    
    winOnResize.tmr = null;
	// End Client Tabs ///////////////////////////////////////////////////////////////////
	
//Menu Rollovers
function MenuOver(ele)
{
	ele.className = "menu_over";
}

function MenuOut(ele)
{
	ele.className = "menu_item";
}

function ServiceSortRows()
{    
	if(document.getElementById('RepSvcTableAdd'))
	{
	tigra_tables('RepSvcTableAdd',1,0, '#EBE4D4', '#F7F5EF', '#F2F454', '#F2F454');
	 
	var st = new SortableTable( document.getElementById('RepSvcTableAdd'), 
	  ['None','CaseInsensitiveString','CaseInsensitiveString'] );
	}
}

function ClientSortRows()
{    
	if(document.getElementById('myZipList'))
	{
	tigra_tables('myZipList',1,1, '#EBE4D4', '#F7F5EF', '#F2F454', '#F2F454');
	 
	var st = new SortableTable( document.getElementById('myZipList'), 
	  ['None','CaseInsensitiveString','CaseInsensitiveString', 'CaseInsensitiveString', 'CaseInsensitiveString','Number'] );
	}
}
   
//Menu Progress Bar Scripting
// ********** Load Bar ***************************************************
	//Preload  images
	var progressnow = 1;
	
	var prog1 = new Image();
	prog1.src = "images/rep_progress1.png";
	var prog2 = new Image();
	prog2.src = "images/rep_progress2.png";
	var prog3 = new Image();
	prog3.src = "images/rep_progress3.png";
	var prog4 = new Image();
	prog4.src = "images/rep_progress4.png";
	
	function GetProgressMap(rate)
	{
		if(rate == 0)
			rate = GetMyElement("curprogress");
			
		try
		{
			var rimg = document.getElementById("progbar");
			rimg.src = eval("prog" + rate + ".src");
		}
		catch(e)
		{
			//alert("no object available...");
		}
	}
	
	function SetProgress(rate)
	{
		var rimg = document.getElementById("progbar");
		rimg.src = eval("prog" + rate + ".src");
		
		switch(rate)
		{
			case 1:
				DoStep1();
				break;
			case 2:
				DoStep2();
				break;
			case 3:
				DoStep3();
				break;
			case 4:
				DoStep4();
				break;
		}
		
	}

	function DoStep4()
	{
		SetMyHTML("err_text", "");
		if(GetMyElement("g_vendorID") == 0)
		{
			SetMyHTML("err_text", "Please register your demographic information first and complete steps 2 and 3...");
			SetMyElement("curprogress", 1);
		}
		else if(GetMyElement("curprogress") <= 2)
		{
			SetMyHTML("err_text", "Please first complete steps 2 and 3...");
		}
		else
		{
			var s4 = document.getElementById("Step4");
			var s3 = document.getElementById("Step3");
			var s2 = document.getElementById("Step2");
			var s1 = document.getElementById("Step1");
			setDisplay(s2, false);
			setDisplay(s1, false);
			setDisplay(s3, false);
			setDisplay(s4, true);
		}
	}
	
	function DoStep3()
	{
		SetMyHTML("err_text", "");
		if(GetMyElement("g_vendorID") == 0)
		{
			SetMyHTML("err_text", "Please register your demographic information first and complete step 2...");
			SetMyElement("curprogress", 1);
		}
		else if(GetMyElement("curprogress") <= 1)
		{
			SetMyHTML("err_text", "Please first complete step 2...");
		}
		else
		{
			var s4 = document.getElementById("Step4");
			var s3 = document.getElementById("Step3");
			var s2 = document.getElementById("Step2");
			var s1 = document.getElementById("Step1");
			setDisplay(s2, false);
			setDisplay(s1, false);
			setDisplay(s3, true);
			setDisplay(s4, false);
			SetMyElement("curprogress", 3);
			winOnResize();
		}
	}
	
	function DoStep2()
	{
		SetMyHTML("err_text", "");
		if(GetMyElement("g_vendorID") == 0)
		{
			SetMyHTML("err_text", "Please register your demographic information first...");
			SetMyElement("curprogress", 1);
		}
		else
		{
			var s4 = document.getElementById("Step4");
			var s3 = document.getElementById("Step3");
			var s2 = document.getElementById("Step2");
			var s1 = document.getElementById("Step1");
			SetMyElement("curprogress", 2);
			setDisplay(s2, true);
			setDisplay(s1, false);
			setDisplay(s3, false);
			setDisplay(s4, false);
			DoServiceFilter();
		}
	}
	
	function DoStep1()
	{
		SetMyHTML("err_text", "");
		var s4 = document.getElementById("Step4");
		var s3 = document.getElementById("Step3");
		var s2 = document.getElementById("Step2");
		var s1 = document.getElementById("Step1");
		setDisplay(s2, false);
		setDisplay(s1, true);
		setDisplay(s3, false);
		setDisplay(s4, false);
	}
	
// Global Variables ///////////////////////////////
	var zipArray = new Array();
	var cntyArray = new Array();
    var zip_edit = 0;
    var svcArray = new Array();
	
	function AddZipToArray(ele)
    {
        var val = ele.value;
        if(ele.checked)
        {
            zipArray.push(val);
        }
        else
        {
            zipArray =  RemoveArrayItems(zipArray,val);
        }
        SetMyElement("g_svcID", zipArray);
       //alert(svcArray.length + ", Array:" + GetMyElement('g_svcID'));
    }
	
	function AddCountyToArray(val, act)
    {
      
        if(act == "add")
        {
            cntyArray.push(val);
        }
        else
        {
            cntyArray =  RemoveArrayItems(cntyArray,val);
        }
        SetMyElement("g_svcID", cntyArray);
       //alert(cntyArray.length + ", Array:" + GetMyElement('g_svcID'));
    }
	
    function RemoveArrayItems(array, item)
    {
        var i = 0;
        while (i < array.length) {
            if (array[i] == item) {
               array.splice(i, 1);
            } 
            else 
            {
               i++;
             }
        }
        return array;
    }
    
	function ClearArray()
	{
		SetMyElement("g_svcID", svcArray);
		svcArray = new Array();
	}
	
	function CheckAllSvc(ele)
	{
		var tot = GetMyElement("totsvc");
		
		if(ele.checked)
		{
			for(var i=0; i<tot; i++)
			{
				var chk = document.getElementById("se"+i);
				chk.checked = true;
				AddService(chk);
			}
		}
		else
		{
			for(var i=0; i<tot; i++)
			{
				var chk = document.getElementById("se"+i);
				chk.checked = false;
				AddService(chk);
			}
		}
		
		//alert(svcArray.length + ", Array:" + GetMyElement('g_svcID'));
	}
	
	function CheckAllAddSvc(ele)
	{
		var tot = GetMyElement("totsvcadd");
		
		if(ele.checked)
		{
			for(var i=0; i<tot; i++)
			{
				var chk = document.getElementById("asvc"+i);
				chk.checked = true;
				AddService(chk);
			}
		}
		else
		{
			for(var i=0; i<tot; i++)
			{
				var chk = document.getElementById("asvc"+i);
				chk.checked = false;
				AddService(chk);
			}
		}
		
		//alert(svcArray.length + ", Array:" + GetMyElement('g_svcID'));
	}
	
	function CopyBilling(ele)
	{
		if(ele.checked)
		{
			SetMyElement("BillName", GetMyElement("VendorName"));
			SetMyElement("BillStreet", GetMyElement("Street"));
			SetMyElement("BillCity", GetMyElement("City"));
			SetMyElement("BillState", GetMyElement("State"));
			SetMyElement("BillZip", GetMyElement("Zip"));
		}
		else
		{
			SetMyElement("BillName", "");
			SetMyElement("BillStreet", "");
			SetMyElement("BillCity", "");
			SetMyElement("BillState", "");
			SetMyElement("BillZip", "");
		}
	}

function Validate1()
{
	var vc = true;
	var err_txt = "<div style='text-align:left' class=Register><b>Registration Validation ::</b></div>";
	var err = document.getElementById("err_text");
	err.innerHTML = "";
		
		if(GetMyElement("VendorName") == "")
		{
			err_txt += "<div class=error style='text-align:left'><img src='application/images/buttons/validate.gif' align=absmiddle> You must enter a Company or Rep Name...</div>";
			vc = false;
		}
		
		if(GetMyElement("Contact") == "")
		{
			err_txt += "<div class=error style='text-align:left'><img src='application/images/buttons/validate.gif' align=absmiddle> Please enter a contact full name...</div>";
			vc = false;
		}
		if(GetMyElement("Street") == "")
		{
			err_txt += "<div class=error style='text-align:left'><img src='application/images/buttons/validate.gif' align=absmiddle> Please enter a street address...</div>";
			vc = false;
		}
		if(GetMyElement("City") == "")
		{
			err_txt += "<div class=error style='text-align:left'><img src='application/images/buttons/validate.gif' align=absmiddle> Please enter a city...</div>";
			vc = false;
		}
		if(GetMyElement("State") == "")
		{
			err_txt += "<div class=error style='text-align:left'><img src='application/images/buttons/validate.gif' align=absmiddle> Please enter a state...</div>";
			vc = false;
		}
		if(GetMyElement("Zip") == "")
		{
			err_txt += "<div class=error style='text-align:left'><img src='application/images/buttons/validate.gif' align=absmiddle> Please enter a zip code...</div>";
			vc = false;
		}
		if(GetMyElement("Phone") == "")
		{
			err_txt += "<div class=error style='text-align:left'><img src='application/images/buttons/validate.gif' align=absmiddle> Please enter a phone number...</div>";
			vc = false;
		}
		if(GetMyElement("Email") == "")
		{
			err_txt += "<div class=error style='text-align:left'><img src='application/images/buttons/validate.gif' align=absmiddle> Please enter an email address...</div>";
			vc = false;
		}
		if(GetMyElement("MatchKey") == "")
		{
			err_txt += "<div class=error style='text-align:left'><img src='application/images/buttons/validate.gif' align=absmiddle> Please enter the security key below...</div>";
			vc = false;
		}
		if(GetMyElement("MatchKey") != skey)
		{
			err_txt += "<div class=error style='text-align:left'><img src='application/images/buttons/validate.gif' align=absmiddle> The key number you enter must match the security key below...</div>";
			vc = false;
		}
		err.innerHTML = err_txt;
	return vc;
}

	function ServiceSortRows()
    {    
		if(document.getElementById('RepSvcTable'))
		{
	    tigra_tables('RepSvcTable',1,0, '#EBE4D4', '#F7F5EF', '#F2F454', '#F2F454');
	     
	    var st = new SortableTable( document.getElementById('RepSvcTable'), 
	      ['None','CaseInsensitiveString','CaseInsensitiveString','Date'] );
		}
    }
   
	function DoServiceFilter()
	{
		var venID = GetMyElement("g_vendorID");
		var svctype = Register.GetVendorServices(venID).value;
		SetMyHTML("ServiceHolder", svctype);
		ServiceSortRows();
	}
	
    function AddService(ele, flag)
    {
	    var v = GetMyElement('g_vendorID');
		var username = 'Online' + v;
		ShowAlert("Processing...", "Please wait while we process this service.");
	    if(flag == 1)
	    {
		    Register.AddServiceBatch(v, ele, 0, username, AddServiceCallback);
	    }
		else
		{
			Register.AddServiceBatch(v, 0, ele, username, AddServiceCallback);
		}
	}
    
   function AddServiceCallback(res)
    {
        //alert(res.value);
        var d = document.getElementById("err_text")
        res.value == null || res.error != null ? d.innerHTML = res.error.Message:
		DoServiceFilter();
        HideAlert();
    }

// Zip Code Functions >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
function CheckAllZips(ele)
	{
		var tot = GetMyElement("totrows");
		
		if(ele.checked)
		{
			for(var i=0; i<tot; i++)
			{
				var chk = document.getElementById("vSel"+i);
				chk.checked = true;
				AddZipToArray(chk);
			}
		}
		else
		{
			for(var i=0; i<tot; i++)
			{
				var chk = document.getElementById("vSel"+i);
				chk.checked = false;
				AddZipToArray(chk);
			}
		}
		
		//alert(zipArray.length + ", Array:" + GetMyElement('g_svcID'));
	}
	
function FilterByCounty(ele)
	{
		var cn = ele.value;
		var ven = GetMyElement("g_vendorID");
		var zip = GetMyElement("ZipSearch");
		Register.GetVendorZips(ven, cn, zip, ZipFilterCallback);
	}
	
	function ZipFilterCallback(res)
	{
		//alert(res.value);
		var d = document.getElementById("vZipList");
		res.value == null || res.error != null ? d.innerHTML = res.error.Message: 
	    d.innerHTML = res.value;
		ClientSortRows();
	}
	
	function FilterByZip()
	{
		var zip = GetMyElement("ZipSearch");
		var ven = GetMyElement("g_vendorID");
		var cn = GetMyElement("CountyLookup");
		
		Register.GetVendorZips(ven, cn, zip, ZipFilterCallback);
	}
	
	function DeleteZips()
	{
		var zips = GetMyElement("g_svcID");
		
		if(zipArray.length >= 1)
		{
			if(confirm("Are you sure you want to remove the selected [" + zipArray.length + "] zip codes from this list?"))
				Register.DeleteSelectedZips(zips, DeleteZipCallback);
		}
	}
	
	function DeleteZipCallback(res)
	{
		var d = document.getElementById("vZipList");
		res.value == null || res.error != null ? d.innerHTML = res.error.Message: 
	    alert(res.value + " Zips were successfully removed...");
		ClearArray();
		FilterByZip();
	}
	
	function DoZipEdit(code, row, id)
	{
		zip_edit = id;
		SetMyHTML("zCodeEdit"+row, "<input type=text size=8 id='redit" + row + "' value='" + code + "' onchange='ZipSingleChange(this)'/>");
		var e = document.getElementById("redit"+row);
		e.focus();
	}
	
	function ZipSingleChange(ele)
	{
		var zip = ele.value;
		Register.UpdateSingleZip(zip_edit, zip, ZipEditCallback);
	}
	
	function ZipEditCallback(res)
	{
		var d = document.getElementById("err_text");
		res.value == null || res.error != null ? d.innerHTML = res.error.Message: 
		FilterByZip();
	}
	
	function ZipAddCallback(res)
	{
		var d = document.getElementById("err_range");
		res.value == null || res.error != null ? d.innerHTML = res.error.Message:
		SetMyHTML("err_range", res.value + " zips added successfully...");		
		FilterByZip();
	}
	
	function ValidateZipRange()
	{
		var valid = true;
		!IsFieldValid("FromZip")? valid = false: 
		!IsFieldValid("ToZip")? valid = false: valid = true;
		return valid;
	}
	
	function InsertZipRange()
	{
		var username = 'Online' + GetMyElement("g_vendorID");
		
		if(ValidateZipRange())
		{
			var ven = GetMyElement("g_vendorID");
			var z1 = GetMyElement("FromZip");
			var z2 = GetMyElement("ToZip");
			
			Register.AddZipRange(z1, z2, ven, username, ZipAddCallback);
		}
		else
		{
			SetMyHTML("err_range", "You need to include both From Zip and To Zip before submitting...");
		}
		
	}
	
	function GetCountyFromState(ele)
	{
		var st = ele.value;
		Register.GetCountyByState(st, GetCountyCallback);
	}
	
	function GetCountyCallback(res)
	{
		var d = document.getElementById("county_list");
		var addbox = document.getElementById("sel_county");
		res.value == null || res.error != null ? d.innerHTML = res.error.Message:
		d.innerHTML = res.value;
		addbox.length = 0;
		cntyArray = new Array();
	}
	
	function SelectMyCounty()  
	{
		var selbox = document.getElementById("CountyListSel");
		var addbox = document.getElementById("sel_county");
		
		//Get Selected County From Choice Box
		var selectedItem = selbox.selectedIndex;
		var selectedText = selbox.options[selectedItem].text;
		var selectedValue = selbox.options[selectedItem].value;
		var boxLength = addbox.length;
		var i;
		//alert(selectedText + ", " + selectedValue);
		
		var isNew = true;
		if (boxLength != 0) 
		{
			for (i = 0; i < boxLength; i++) {
				var thisitem = addbox.options[i].text;
			if (thisitem == selectedText) {
				isNew = false;
				break;
      			}
   			}
		} 
	if (isNew) 
	{
		var newoption = new Option(selectedText, selectedValue, false, false);
		addbox.options[boxLength] = newoption;
	}
		
		selbox.selectedIndex=-1;
		boxLength = addbox.length;
		AddCountyToArray(selectedValue, "add");
		SetMyHTML("cscnt", " [" + boxLength + "]");
	}
	
function RemoveSelectedCnty() 
{
	var addbox = document.getElementById("sel_county");
	var boxLength = addbox.length;
	arrSelected = new Array();
	var count = 0;
	for (i = 0; i < boxLength; i++) {
	if (addbox.options[i].selected) {
		arrSelected[count] = addbox.options[i].value;
	}
	count++;
	}
	var x;
	for (i = 0; i < boxLength; i++) 
	{
		for (x = 0; x < arrSelected.length; x++) 
		{
			if (addbox.options[i].value == arrSelected[x]) {
				addbox.options[i] = null;
				AddCountyToArray(arrSelected[x], "rem");
		   }
		}
		
		boxLength = addbox.length;
		SetMyHTML("cscnt", " [" + boxLength + "]");
	}
}

	function ValidateCounty()
	{
		var valid = true;
		var addbox = document.getElementById("sel_county");
		var boxLength = addbox.length;
		!IsFieldValid("StateSelect")? valid = false: 
		boxLength == 0? valid = false: valid = true;
		return valid;
	}
	
	function InsertCountyRange()
	{
		var username = 'Online' + GetMyElement("g_vendorID");
		
		if(ValidateCounty())
		{
			var ven = GetMyElement("g_vendorID");
			var st = GetMyElement("StateSelect");
			var ca = GetMyElement("g_svcID");
			
			Register.AddCountyList(ca, st, ven, username, CntyAddCallback);
		}
		else
		{
			SetMyHTML("err_county", "You need to select a State and select some Counties before submitting...");
		}
		
	}

	function CntyAddCallback(res)
	{
		var d = document.getElementById("err_range");
		var addbox = document.getElementById("sel_county");
		res.value == null || res.error != null ? d.innerHTML = res.error.Message:
		SetMyHTML("err_county", res.value + " zips added successfully...");		
		FilterByZip();
		addbox.length = 0;
		cntyArray = new Array();
	}
	
	function SendReport()
	{
		
	}