var flag=0;
var form = document.forms[0];
var currentVConParty = "";
var totalParties = 1;

function determineAction(actionName, searchIndex) 
{	
	var count = 1;
	var error = false;
	var addressError = false;
	var errorForParty = 5;
	if (actionName != 'clearForm')
	{
		if (countryCode == "US" && document.searchActionForm.appId.value != "ReturnSystem")
		{
			if (document.getElementById("searchType.videoConferencing").checked == true)
			{
				count = totalParties;
				var tempPostalCode = ""; 
				var tempStreetAddress = "";
				var tempCity = "";
				var tempStateProvince = ""; 
				var tempAreaPhoneNumber = ""; 
				var tempPhoneNumber = ""

				var tempPostalCode = document.getElementById("tempSearchAddress.postalCode").value; 
				var tempStreetAddress = document.getElementById("tempSearchAddress.streetAddress").value; 
				var tempCity = document.getElementById("tempSearchAddress.city").value; 
				var tempStateProvince = document.getElementById("tempSearchAddress.stateProvince").value; 
				var tempAreaPhoneNumber = document.getElementById("tempSearchAddress.areaPhoneNumber").value; 
				var tempPhoneNumber = document.getElementById("tempSearchAddress.phoneNumber").value; 

				if (!isNullOrEmpty(tempPostalCode) ||
					!isNullOrEmpty(tempStreetAddress) ||
					!isNullOrEmpty(tempCity) ||
					!isNullOrEmpty(tempStateProvince) ||
					!isNullOrEmpty(tempAreaPhoneNumber) ||
					!isNullOrEmpty(tempPhoneNumber)) 
				{
					document.getElementById("addressInfoList[0].postalCode").value = tempPostalCode;
					document.getElementById("addressInfoList[0].streetAddress").value = tempStreetAddress;
					document.getElementById("addressInfoList[0].city").value = tempCity;
					document.getElementById("addressInfoList[0].stateProvince").value = tempStateProvince;
					document.getElementById("addressInfoList[0].areaPhoneNumber").value = tempAreaPhoneNumber;
					document.getElementById("addressInfoList[0].phoneNumber").value = tempPhoneNumber;
				}
			}
		}
		for (index = 0; index < count; index++)
		{
			error = false;

			var partyId = index+1;
			var errorMessage = noError;
			var address = document.getElementById("addressInfoList[" + index + "].streetAddress").value;
			if(address != null && address != '') {	
				document.getElementById("addressInfoList[" + index + "].streetAddress").value = address.trim();
			}
			var city = document.getElementById("addressInfoList[" + index + "].city").value;
			if(city != null && city != '') {
				document.getElementById("addressInfoList[" + index + "].city").value = city.trim();
			}
			var state = document.getElementById("addressInfoList[" + index + "].stateProvince").value;
			var zip = document.getElementById("addressInfoList[" + index + "].postalCode").value;
			if(zip != null && zip != '') {			
				document.getElementById("addressInfoList[" + index + "].postalCode").value = zip.trim();
			}
			var areaPhone = document.getElementById("addressInfoList[" + index + "].areaPhoneNumber").value;
			var phone = document.getElementById("addressInfoList[" + index + "].phoneNumber").value;
			if (zip.length == 0) 
			{
				if (city.length == 0 && state.length == 0 && areaPhone.length == 0 && phone.length == 0)
				{
					errorMessage = errorAllFieldsEmpty;
					error = true;
				}
				if (city.length == 0 && state.length == 0)
				{
					if ((areaPhone.length == 0 && phone.length > 0) || (areaPhone.length > 0 && phone.length == 0))
					{
						errorMessage = errorPhoneInvalid;
						error = true;
					}
					else if (areaPhone.length > 0 && phone.length > 0)
					{
						if (isNaN(parseInt(areaPhone)) || isNaN(parseInt(phone)))
						{
							errorMessage = errorPhoneNotValid;
							error = true;
						}
						if (areaPhone.length != 3 || phone.length != 7)
						{
							errorMessage = errorPhoneIncomplete;
							error = true;
						}
					}
				}
				if (city.length == 0 && state.length > 0)
				{
					errorMessage = errorStateCityZipEmpty;
					error = true;
				}
				if (city.length > 0 && state.length == 0)
				{
					errorMessage = errorStateCityZipEmpty;
					error = true;
				}
			}
			if (error)
			{
				document.getElementById("errorDetails_" + partyId).innerHTML = errorMessage;
				addressError = true;
				if (partyId == 3)
				{
					error3Message = errorMessage;
				}
				else if (partyId == 4)
				{
					error4Message = errorMessage;
				}
			} 
			else
			{
				document.getElementById("errorDetails_" + partyId).innerHTML = noError;
			}
		}
	}
	if (!addressError)
	{
		document.getElementById("errorDetails_1").innerHTML = noError;
		if (countryCode == "US" && document.searchActionForm.appId.value != "ReturnSystem")
		{
			if (document.getElementById("searchType.videoConferencing").checked == true)
			{
				document.getElementById("errorDetails_2").innerHTML = noError;
				document.getElementById("errorDetails_3").innerHTML = noError;
				document.getElementById("errorDetails_4").innerHTML = noError;
			}
		}
		document.getElementById("headerError").innerHTML = noError;
		document.searchActionForm.action="SearchAction.do";
		document.searchActionForm.actionText.value=actionName;
		document.searchActionForm.totalVConAddresses.value=totalParties;
		if(actionName == "ambiguousSearch") 
		{
			document.searchActionForm.selectedAmbigousIndex.value=searchIndex;
		}
		document.searchActionForm.submit();
		return true;
	}
	else
	{	var msg = "";
		msg = errorHeader;
		document.getElementById("headerError").innerHTML = msg;
	}
}


function ManageVCon(value)
{
	if(value)
	{	
		framework.util.showElement("vConDetails");
		addVConParty('1');
		addVConParty('2');
		totalParties = 2;
	}
	else
	{
		totalParties = 1;
		framework.util.hideElement("vConDetails");
		framework.util.hideElement("vConParty_1");
		framework.util.hideElement("vConParty_2");
		framework.util.hideElement("vConParty_3");
		framework.util.hideElement("vConParty_4");
		hideDeleteParty('2');
		hideDeleteParty('3');
		hideDeleteParty('4');
		document.getElementById("vConAddPartyButtonHolder_2").innerHTML = "";
		document.getElementById("vConAddPartyButtonHolder_3").innerHTML = "";
		document.getElementById("vConAddPartyButtonHolder_4").innerHTML = "";
		if (document.getElementById("errorDetails_1").innerHTML == noError)
		{
			document.getElementById("headerError").innerHTML = noError;
		}
		if (!document.getElementById("searchType.videoConferencing").checked){	
			document.getElementById("headerError").innerHTML = noError;
			document.getElementById("errorDetails_1").innerHTML = noError;
		}
		
	}
   return true;
}

function setDisplayParties(currParty) 
{
	var msg = "";
	switch (currParty)
	{
		case "1" :
			framework.util.hideElement("vConDetails");
			framework.util.hideElement("vConParty_1");
			framework.util.hideElement("vConParty_2");
			framework.util.hideElement("vConParty_3");
			framework.util.hideElement("vConParty_4");
			totalParties = 1;			
			break;
		case "2" :
			setParty2AddButton();
			framework.util.showElement("vConDetails");
			framework.util.showElement("vConParty_1");
			framework.util.showElement("vConParty_2");
			framework.util.hideElement("vConParty_3");
			framework.util.hideElement("vConParty_4");
			totalParties = 2;
			document.getElementById("addressInfoList[1].postalCode").focus();
			break;
		case "3" :
			document.getElementById("vConAddPartyButtonHolder_2").innerHTML = "";
			framework.util.showElement("vConDetails");
			framework.util.showElement("vConParty_1");
			framework.util.showElement("vConParty_2");
			framework.util.showElement("vConParty_3");
			framework.util.hideElement("vConParty_4");
			setParty3AddDeleteButton();
			totalParties = 3;
			document.getElementById("addressInfoList[2].postalCode").focus();
			break;
		case "4" :
			framework.util.showElement("vConDetails");
			framework.util.showElement("vConParty_1");
			framework.util.showElement("vConParty_2");
			framework.util.showElement("vConParty_3");
			framework.util.showElement("vConParty_4");
			setParty3DeleteButton ();
			setParty4AddDeleteButton();
			totalParties = 4;
			msg = "<p class=alertWrap>";
			msg += maxPartiesMsg;
			msg += "</p>";
			document.getElementById("vConMaxPartyMsgHolder").innerHTML = msg;
			document.getElementById("addressInfoList[3].postalCode").focus();
			break;
		default:
			framework.util.hideElement("vConDetails");
			framework.util.hideElement("vConParty_1");
			framework.util.hideElement("vConParty_2");
			framework.util.hideElement("vConParty_3");
			framework.util.hideElement("vConParty_4");
			//return;
			break;
	 }
}


/* Add videoconferencing fields */
function addVConParty(currParty) 
{
	var maxParties = 4;
	var msg = "";
	if (currParty <= maxParties) 
	{	
		if (currParty == 1)
		{	
			document.getElementById("tempSearchAddress.postalCode").value = document.getElementById("addressInfoList[0].postalCode").value;
			document.getElementById("tempSearchAddress.streetAddress").value = document.getElementById("addressInfoList[0].streetAddress").value;
			document.getElementById("tempSearchAddress.city").value = document.getElementById("addressInfoList[0].city").value;
			document.getElementById("tempSearchAddress.stateProvince").value = document.getElementById("addressInfoList[0].stateProvince").value;
			document.getElementById("tempSearchAddress.areaPhoneNumber").value = document.getElementById("addressInfoList[0].areaPhoneNumber").value;
			document.getElementById("tempSearchAddress.phoneNumber").value = document.getElementById("addressInfoList[0].phoneNumber").value;

		}
		setDisplayParties (currParty);
	} 
	
}

function setParty2AddButton() 
{
	var data = "<tr><td colspan=2><input class=buttonVedioConfGray type=button style='margin: 0px 10px 0px 0px; float: right;' value='" + addPartyButton;
	data += "' id=addParty3 onclick=addVConParty('3') name=addParty3></td></tr>";
	document.getElementById("vConAddPartyButtonHolder_2").innerHTML = data;
}

function setParty3AddDeleteButton() 
{
	var party3Buttons = "";
	party3Buttons = "<tr><td colspan=2><input class=buttonVedioConfGray type=button value='" + deletePartyButton;
	party3Buttons += "' onclick=deleteVConParty('3');>";
	party3Buttons += "<input class=buttonVedioConfGray type=button value='" + addPartyButton;
	party3Buttons += "' id=addParty4 name=addParty4 onclick=addVConParty('4')></td></tr>";
	document.getElementById("vConAddPartyButtonHolder_3").innerHTML = party3Buttons;
	if(document.getElementById("addressInfoList[2].postalCode")) {
		document.getElementById("addressInfoList[2].postalCode").focus();
	}else {
		document.getElementById("addressInfoList[1].postalCode").focus();
	}
}

function setParty4AddDeleteButton() 
{
	var party4Buttons = "";
	party4Buttons = "<tr><td colspan=2><input class=buttonVedioConfGray type=button value='" + deletePartyButton;
	party4Buttons += "' onclick=deleteVConParty('4');>";
	party4Buttons += "<input class=buttonVedioConfGray type=button value='" + addPartyButton;
	party4Buttons += "' id=addParty4 name=addParty4 DISABLED></td></tr>";
	document.getElementById("vConAddPartyButtonHolder_4").innerHTML = party4Buttons;
	document.getElementById("addressInfoList[3].postalCode").focus();
}

function setParty3DeleteButton() 
{
	var party3Buttons = "";
	party3Buttons = "<tr><td colspan=2><input class=buttonVedioConfGray type=button value='" + deletePartyButton;
	party3Buttons += "' onclick=deleteVConParty('3');></td></tr>";
	document.getElementById("vConAddPartyButtonHolder_3").innerHTML = party3Buttons;
	document.getElementById("addressInfoList[1].postalCode").focus();
}

function deleteVConParty(currParty) 
{	
	document.getElementById("vConMaxPartyMsgHolder").innerHTML = "";
	if (currParty == 3)
	{
		if ( totalParties == 4)
		{
			document.getElementById("vConAddPartyButtonHolder_4").innerHTML = "";
			if (!isNullOrEmpty(error4Message))
			{
				document.getElementById("errorDetails_3").innerHTML = error4Message;
				document.getElementById("errorDetails_4").innerHTML = noError;
			}
			else
			{
				document.getElementById("errorDetails_3").innerHTML = noError;
			}

			setParty3AddDeleteButton();
			totalParties = 3;
			document.getElementById("addressInfoList[2].postalCode").value = document.getElementById("addressInfoList[3].postalCode").value;
			document.getElementById("addressInfoList[2].streetAddress").value = document.getElementById("addressInfoList[3].streetAddress").value;
			document.getElementById("addressInfoList[2].city").value = document.getElementById("addressInfoList[3].city").value;
			document.getElementById("addressInfoList[2].stateProvince").value = document.getElementById("addressInfoList[3].stateProvince").value;
			document.getElementById("addressInfoList[2].areaPhoneNumber").value = document.getElementById("addressInfoList[3].areaPhoneNumber").value;
			document.getElementById("addressInfoList[2].phoneNumber").value = document.getElementById("addressInfoList[3].phoneNumber").value;

			framework.util.showElement("vConParty_3");
		}
		else if (totalParties = 3)
		{
			document.getElementById("vConAddPartyButtonHolder_3").innerHTML = "";
			document.getElementById("errorDetails_3").innerHTML = "";
			setParty2AddButton();
			totalParties = 2;
			hideDeleteParty ('3');
		}
		hideDeleteParty ('4');
	}
	else if (currParty == 4)
	{	
		totalParties = 3;
		deleteData ('4');
		document.getElementById("errorDetails_4").innerHTML = noError;
		framework.util.hideElement("vConParty_4");
		document.getElementById("vConAddPartyButtonHolder_4").innerHTML = "";
		setParty3AddDeleteButton();
	} 	
}

function deleteData(id) 
{
    var partyId = id-1; 
	document.getElementById("errorDetails_" + id).innerHTML = noError;
	document.getElementById("addressInfoList[" + partyId + "].postalCode").value = "";
	document.getElementById("addressInfoList[" + partyId + "].streetAddress").value = "";
	document.getElementById("addressInfoList[" + partyId + "].city").value = "";
	document.getElementById("addressInfoList[" + partyId + "].stateProvince").value = "";
	document.getElementById("addressInfoList[" + partyId + "].areaPhoneNumber").value = "";
	document.getElementById("addressInfoList[" + partyId + "].phoneNumber").value = "";
}

function hideDeleteParty(id) 
{
	deleteData(id);
	framework.util.hideElement("vConParty_" + id);

}

function isNullOrEmpty(data)
{
	if (data != null && data != "") 
	{
	   return false;
	}
	return true;
}

function autoTab(input,len, e) {
	var isNN = (navigator.appName.indexOf("Netscape")!=-1);
    var keyCode = (isNN) ? e.which : e.keyCode;
    var filter = (isNN) ? [0,8,9] : [0,8,9,16,17,18,37,38,39,40,46];
    if(input.value.length >= len && !containsElement(filter,keyCode)) {
        input.value = input.value.slice(0, len);
        input.form[(getIndex(input)+1) % input.form.length].focus();
    }
    function containsElement(arr, ele) {
        var found = false, index = 0;
        while(!found && index < arr.length)
            if(arr[index] == ele) found = true;
            else index++;
        return found;
    }

    function getIndex(input) {
        var index = -1, i = 0, found = false;
        while (i < input.form.length && index == -1)
            if (input.form[i] == input)index = i;
            else i++;
        return index;
    }
    return true;
}

function onEnter(e) {
    var characterCode 
    if(e && e.which) { //I.E. Browsers
        e = e
        characterCode = e.which
    }
    else{ //Non I.E. Browsers
        e = e
        characterCode = e.keyCode
    }
    if(characterCode == 13){ 
        determineAction('findlocation', 0);
        return false
    }
    else{
        return true
    }
}

 //show hide rows from anchor click, typically associated to the plus/minus icon
function hideOrShowSection(pAnchorId,pToggleMode,tableId) 
{	
	if (pToggleMode == "collapse") 
	{
		framework.util.hideElement(tableId);
		document.getElementById(pAnchorId).className = "morelink";
		document.getElementById(pAnchorId).href = "javascript:hideOrShowSection('" + pAnchorId + "','expand','" + tableId + "')";		
	} 
	
	if (pToggleMode == "expand") 
	{
		framework.util.showElement(tableId);
		document.getElementById(pAnchorId).className = "lesslink";
		document.getElementById(pAnchorId).href = "javascript:hideOrShowSection('" + pAnchorId + "','collapse','" + tableId + "')";
	} 
} 