/*	By Mr.Ke Sopheak
    Email : kesopheak@yahoo.com
	Company : Highsolutions Co.,Ltd.
*/

function trim(inputString) 
	{
	if(inputString.type == "text")
		{
		inputString = inputString.value;
		};
	for (var i=0; i<document.forms[0].length; i++)
		{
		if (document.forms[0].elements[i].name == inputString)
			{
			inputString = document.forms[0].elements[i].value;
			break;
			};
		}
	if (typeof inputString != "string")
		{
		return inputString;
		};
	var retValue = inputString;
	var ch = retValue.substring(0, 1);
	while (ch == " ")
		{
		
		retValue = retValue.substring(1, retValue.length);
		ch = retValue.substring(0, 1);
		};
	ch = retValue.substring(retValue.length-1, retValue.length);
	while (ch == " ") 
		{
		
		retValue = retValue.substring(0, retValue.length-1);
		ch = retValue.substring(retValue.length-1, retValue.length);
		};
	while (retValue.indexOf("  ") != -1)
		{
		
		retValue = retValue.substring(0, retValue.indexOf("  ")) + retValue.substring(retValue.indexOf("  ")+1, retValue.length); 
		
	   };
	return retValue; 
	}
	

function toggleDynamicTable(iid)
	{
	if (document.getElementById)
	{
		iid = document.getElementById(iid)
		if (iid.style.display == "none" || iid.style.display == "")
			{
			iid.style.display = "block";
			}
		else
			{
			iid.style.display = "none";
			};
	}
	else
	{
		alert('Your browser does not allow for dynamic javascript and is not standards-compliant.\nPlease update your browser to use our site and have it function correctly.');
	}
	}

function toggleItemDisplay(iId)
	{
	if (iId == 0)
		{
		var sSet;
		if (document.getElementById("toggleAll").innerText == "[Collapse All Items]")
			{
			sSet = "none";
			document.getElementById("toggleAll").innerText = "[Uncollapse All Items]";
			}
		else
			{
			sSet = "block";
			document.getElementById("toggleAll").innerText = "[Collapse All Items]";
			};
		var tmpID;
		for(var i = 0;i<document.getElementsByTagName("TR").length;i++)
			{
			if (document.getElementsByTagName("TR").item(i) != null)
				{
				if (document.getElementsByTagName("TR").item(i).style.display == "none" && sSet == "block")
					{
					tmpID = document.getElementsByTagName("TR").item(i).id;
					document.getElementById(tmpID+"-tree").innerHTML = "-";
					document.getElementsByTagName("TR").item(i).style.display = "block";
					}
				else if (document.getElementsByTagName("TR").item(i).style.display == "block" && sSet == "none")
					{
					tmpID = document.getElementsByTagName("TR").item(i).id;
					document.getElementById(tmpID+"-tree").innerHTML = "+";
					document.getElementsByTagName("TR").item(i).style.display = "none";
					};
				}
			};
		}
	else
		{
		for(var t = 0;t<document.getElementsByName(iId).length;t++)
			{
			if (document.getElementsByName(iId).item(t).style.display == "none")
				{
				document.getElementById(iId+"-tree").innerHTML = "-";
				document.getElementsByName(iId).item(t).style.display = "block";
				}
			else
				{
				document.getElementById(iId+"-tree").innerHTML = "+";
				document.getElementsByName(iId).item(t).style.display = "none";
				};
			}
		};
	}

function toggleMenuSection(sImg, sID)
	{
	var newImg;
	if (document.getElementById)
		{
		if (document.getElementById(sID).style.display == "none")
			{
			newImg = document.getElementById(sImg).src;
			newImg = newImg.substr(0, newImg.indexOf("arrowrt.gif", 1)) + "arrowdn.gif"
			document.getElementById(sImg).src = newImg;
			document.getElementById(sID).style.display = "";
			/*document.getElementById(sID).parentElement.style.color = "gold";*/
			}
		else
			{
			newImg = document.getElementById(sImg).src;
			newImg = newImg.substr(0, newImg.indexOf("arrowdn.gif", 1)) + "arrowrt.gif"
			document.getElementById(sImg).src = newImg;
			document.getElementById(sID).style.display = "none";
			/*document.getElementById(sID).parentElement.style.color = "white";*/
			};
		}
	else
		{
		alert('Your browser does not allow for dynamic javascript and is not standards-compliant.\nPlease update your browser to use our site and have it function correctly.');
		};
	}

function toggleDisplay(sID)
{	
	if (document.getElementById)
	{
	if (document.getElementById(sID).style.display == "none")
		document.getElementById(sID).style.display = "block";
	else
		document.getElementById(sID).style.display = "none";
	}
	else
	{
		alert('Your browser does not allow for dynamic javascript and is not standards-compliant.\nPlease update your browser to use our site and have it function correctly.');
	};
}

function toggleIslandDisplay(sID)
{
	var mini, body;
	mini = "mini_" + sID;
	body = "body_" + sID;

	if (document.getElementById)
	{
		if (document.getElementById(body).style.display == "none")
		{	document.getElementById(body).style.display = "block";
			document.getElementById(mini).value = " - ";
		}
		else
		{	document.getElementById(body).style.display = "none";
			document.getElementById(mini).value = " + ";
		}
	}
	else
	{
		alert('Your browser does not allow for dynamic javascript and is not standards-compliant.\nPlease update your browser to use our site and have it function correctly.');
	};
}

function toggleMenuDisplay(sItemID, sSubMenuID)
{
	if (document.getElementById)
	{
		if (document.getElementById(sSubMenuID).className == "PortalMenuSubHidden")
		{	document.getElementById(sSubMenuID).className = "PortalMenuSub";
			document.getElementById(sItemID).className = "expanded";
		}
		else
		{	document.getElementById(sSubMenuID).className = "PortalMenuSubHidden"
			document.getElementById(sItemID).className = "expandable";
		}
	}
	else
	{
		alert('Your browser does not allow for dynamic javascript and is not standards-compliant.\nPlease update your browser to use our site and have it function correctly.');
	};
	return true;
}


function setFocus()
{
	for (var i=0; i<document.forms[0].length; i++)
		{
		
		if (document.forms[0].elements[i].name != "")
		{
		switch (document.forms[0].elements[i].type)
			{
			
			case "text":
				if (!document.forms[0].elements[i].disabled && !(document.getElementById(document.forms[0].elements[i].name).parentNode.style.display == "none"))
					{
					document.forms[0].elements[i].focus();
					return true;
					}
				break;
			case "submit":
				if (!document.forms[0].elements[i].disabled && !(document.getElementById(document.forms[0].elements[i].name).parentNode.style.display == "none"))
					{
					document.forms[0].elements[i].focus();
					return true;
					}
				break;
			case "radio":
				if (!document.forms[0].elements[i].disabled && !(document.getElementById(document.forms[0].elements[i].name).parentNode.style.display == "none"))
					{
					document.forms[0].elements[i].focus();
					return true;
					}
				break;
			default:
				
					break;
			}
		}
		}
}


function isEmail (s)
{
	
	var illegalChars="\\(\\)<>@,;:\\\\\\\"\\.\\[\\]"

	
	var emailPat=/^(.+)@(.+)$/

	var matchArray=s.match(emailPat)
	if (matchArray==null)
		return false
 	var user=matchArray[1]
	var domain=matchArray[2]

	
	var userPat=new RegExp("^[^" + illegalChars + "]+(\\.[^" + illegalChars + "]*)*$")
	
	var quotedUser=/^\"[^\"]+\"$/
	if (user.match(userPat)==null && user.match(quotedUser)==null)
		return false

	
	var ipDomainPat=/^\[(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})\]$/
	var IPArray=domain.match(ipDomainPat)
	if (IPArray!=null)
	{	
		for (var i=1;i<=4;i++)
		{	if (IPArray[i]>255)
				return false
		}

		return true
	}

	
	var domainPat=new RegExp("^[^" + illegalChars + "]+(\\.[^" + illegalChars + "]+)+$")
	var domainArray=domain.match(domainPat)
	if (domainArray==null)
		return false

	
	var atomPat=new RegExp("[^" + illegalChars + "]+","g")
	var domArr=domain.match(atomPat)
	var suffix=domArr[domArr.length-1]
	if (suffix.length<2 || suffix.length>4)
		return false

	return true;
}


function isChecked(arrRadioSet)
{	
	if(arrRadioSet.checked)
		return true;
	for(i=0; i<arrRadioSet.length; i++)
	{	if(arrRadioSet[i].checked)
			return true;
	}
}


function openWindow(URL, wintype)
{	var winname, child;
	if(openWindow.arguments.length > 2)
		winname = openWindow.arguments[2];
	else
		winname = "winChild";

	switch(wintype)
	{	case 1: 
			child = window.open(URL, winname, "height=500,width=820,directories=no,location=no,menubar=no,toolbar=no,resizable=yes,scrollbars=yes,titlebar=yes");
			child.focus();
			break;
		case 2: 
			child = window.open(URL, winname, "height=500,width=700,directories=no,location=no,menubar=no,toolbar=no,resizable=yes,scrollbars=yes,titlebar=yes");
			child.focus();
			break;
		case 3: 
			child = window.open(URL, winname, "height=400,width=500,directories=no,location=no,menubar=no,toolbar=no,resizable=no,scrollbars=no,titlebar=yes");
			child.focus();
			break;
		default:
			child = window.open(URL, winname, "");
			child.focus();
			break;
	}
}



function getOptionValue(field)
{	if(field == null || field.length == 0) 
		return "";
	var index = field.selectedIndex;
	if(index<0) 
		return "";
	return field.options[index].value;
}


function frmPaymentSubmit(btnDIV)
	{
	if (bBeenSubmitted == 1)
		{
		alert("You order has been submitted for processing, please be patient.");
		return false;
		}
	else
		{
		btnDIV.innerHTML = "<p class=\"paySubmit\">Processing Order...</p>";
		bBeenSubmitted = 1;
		return true;
		};
	}


function dlInfoValidate(form)
	{
	var retVal = true;
	for (var i=0;i<form.length;i++)
	{
		var elem = form.elements[i];
		switch (elem.type)
			{
			case "hidden": 
				break;
			case "text":
				switch (elem.name)
					{
					case "email":
						if (!isEmail(elem.value))
						{
						alert('Please enter a valid email address.');
						elem.select();
						retVal = false;
						}
						break;
					case "name":
						if (elem.value == "" && elem.value.length >= 10)
						{
						alert('Please enter your full name.');
						elem.select();
						retVal = false;
						}
						break;
					}
				break;
			case "select-one":
				if (elem.value == -1)
					{
					alert("Please select a country.");
					elem.focus();
					retVal = false;
					}
				break;
			default:
				break;
			}
		
		if (retVal == false)
			return false;
	}
	return retVal;
	}
	
function toggleVisibility(element)
	{
	for (var i=0; i<element.length; i++)
		{
		if (element[i].value == element[element.selectedIndex].value)
			document.getElementById("value_"+element[i].value).style.display = "block";
		else
			document.getElementById("value_"+element[i].value).style.display = "none";
		};
	}
function validate(regex, e)
	{
	var key;
	if (e.which == null)
		key = e.keyCode;
	else
		key = e.which;
	switch (regex)
		{
		case "int":
			if (key >= 48 && key <= 57 || key == 8) //allow backspace
				return true;
			else
				return false;
		default: 
			return true;
		}
	}