////////////////////////////////////////////
//System Base Function collection
////////////////////////////////////////////
function Trim(TRIM_VALUE)
{
	if(TRIM_VALUE.length < 1)
	{
		return"";
	}
	TRIM_VALUE = RTrim(TRIM_VALUE);
	TRIM_VALUE = LTrim(TRIM_VALUE);
	if(TRIM_VALUE=="")
	{
		return "";
	}
	else
	{
		return TRIM_VALUE;
	}
} //End Function

function RTrim(VALUE)
{
	var w_space = String.fromCharCode(32);
	var v_length = VALUE.length;
	var strTemp = "";
	if(v_length < 0)
	{
		return"";
	}
	var iTemp = v_length -1;
	while(iTemp > -1)
	{
		if(VALUE.charAt(iTemp) == w_space)
		{
		}
		else		{
			strTemp = VALUE.substring(0,iTemp +1);
			break;
		}
		iTemp = iTemp-1;
	}
	return strTemp;
}

function LTrim(VALUE)
{
	var w_space = String.fromCharCode(32);
	if(v_length < 1)
	{
		return"";
	}
	var v_length = VALUE.length;
	var strTemp = "";
	var iTemp = 0;
	while(iTemp < v_length)
	{
		if(VALUE.charAt(iTemp) == w_space)
		{
		}
		else
		{
			strTemp = VALUE.substring(iTemp,v_length);
			break;
		}
		iTemp = iTemp + 1;
	}
	return strTemp;
}

function RemoveNode(NodeIDToDelete)
{
	var NodeToDelete = document.getElementById(NodeIDToDelete);
	if(NodeToDelete.parentNode)
	{
		var pNode = NodeToDelete.parentNode;
		pNode.removeChild(NodeToDelete);
	}
}
function  CreateHttpObject()
{
	var oHttpReq;
	//var oDoc;
	if (window.XMLHttpRequest) 
	{
		oHttpReq = new XMLHttpRequest();
		//oDoc = document.implementation.createDocument("text/xml", "", null);
	}
	else
	{
		oHttpReq = new ActiveXObject("MSXML2.XMLHTTP");
		//oDoc = new ActiveXObject("MSXML2.DOMDocument");	
	}
	return oHttpReq;
}

function OpenUrl(sUrl)
{
		var oHttp;
		oHttp = CreateHttpObject();
		if (window.XMLHttpRequest) 
		{
			oHttp.open("GET",sUrl,false);
			oHttp.send(null);
		}
		else
		{
			oHttp.open("GET",sUrl,false);
			oHttp.send("");
		}
		var sHttpResult;
		if( oHttp.status == 200)
		{
			sHttpResult = oHttp.responseText;	
		}
		else
		{
			throw oHttp.statusText;
		}
		delete oHttp;
		if(sHttpResult == null)
		{
			sHttpResult = "";
		}
		return sHttpResult;
}

function checkforblanks() 
{ 
	var bRet;
	var sErros;
	bRet = true;
	sErrors = "";
	for (var i = 0; i < arguments.length; i += 2) 
	{ 
		if (!arguments[i].value) 
		{
			sErrors = sErrors + "- Please enter : " + arguments[i+1] + ".\n";
			if(bRet)
			{
				arguments[i].focus();
				bRet = false;
			}
		} 
	} 
	if(bRet == false)
	{
		alert(sErrors);
	}
	else
	{
		return true; 
	}
} 

function EmailCheck(str) 
{
	var at="@";
	var dot=".";
	var lat=str.indexOf(at);
	var lstr=str.length;
	var ldot=str.indexOf(dot);
	if (str.indexOf(at)==-1)
	{

	   return false;
	}

	if (str.indexOf(at)==-1 || str.indexOf(at)==0 || str.indexOf(at)==lstr)
	{
	   return false;
	}

	if (str.indexOf(dot)==-1 || str.indexOf(dot)==0 || str.indexOf(dot)==lstr)
	{
		return false;
	}

	 if (str.indexOf(at,(lat+1))!=-1)
	 {
		return false;
	 }

	 if (str.substring(lat-1,lat)==dot || str.substring(lat+1,lat+2)==dot)
	 {
		return false;
	 }

	 if (str.indexOf(dot,(lat+2))==-1)
	 {
		return false;
	 }
	
	 if (str.indexOf(" ")!=-1)
	 {
		return false;
	 }
	 return true;					
}

function randomString() 
{
	var chars = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXTZabcdefghiklmnopqrstuvwxyz";
	var string_length = 8;
	var randomstring = '';
	for (var i=0; i<string_length; i++) 
	{
		var rnum = Math.floor(Math.random() * chars.length);
		randomstring += chars.substring(rnum,rnum+1);
	}
	return randomstring;
}


function validateRegister()
{
// Make sure none of the required fields are empty
var isFull = checkforblanks(document.frmRegister.txtFirstName, "your first name",
							document.frmRegister.txtLastName, "your last name",
				document.frmRegister.txtCompany, "your company name",
				document.frmRegister.txtBusinessType,"your company's business type",
				document.frmRegister.txtEmail, "your email", 							
				document.frmRegister.txtPassword, "your password");
	if (!isFull)
	{
		return false;
	}
	
	var emailID=document.frmRegister.txtEmail;
	
	if (EmailCheck(emailID.value)==false)
	{
		alert("- Invalid email address:" + emailID.value);
		emailID.focus();
		return false;
	}
	
	if(document.frmRegister.txtPassword.value != document.frmRegister.txtPasswordVerify.value)
	{
		alert("- Re-enter password : do not match exactly.\nPlease enter and re-type same password.");
		document.frmRegister.txtPasswordVerify.focus();
		return false;
	}
	return true;
}

function AddCssClass(obj,classAdd)
{
	if(obj == null || classAdd == null)
	{
		return; 
	}
	if(obj.className == null || obj.className == "")
	{
		obj.className = classAdd;
		return;
	}
	var classes = obj.className.split(" ");
	var isAddClassExist = false;
	for ( var classList = 0 ; classList < classes.length ; classList++)
	{
		if(classes[classList] == classAdd)
		{
			isAddClassExist = true;
		}
	}
	
	if(!isAddClassExist) 	
	{
		obj.className = obj.className + " " + classAdd;
	}
}

function RemoveCssClass(obj,classRemove)
{
	if(obj == null || classRemove == null)
	{
		return; 
	}
	if(obj.className == null || obj.className == "")
	{
		return;
	}
	var classes = obj.className.split(" ");
	var newClass = "";
	for ( var classList = 0 ; classList < classes.length ; classList++)
	{
		if(classes[classList] == classRemove)
		{
		}
		else
		{
			if(newClass == "")
			{
				newClass = classes[classList];			
			}
			else
			{
				newClass = newClass + " " + classes[classList];
			}
		}
	}
	obj.className = newClass;
}

function validateProfile()
{
// Make sure none of the required fields are empty
var isFull = checkforblanks(document.frmRegister.txtFirstName, "your first name",
							document.frmRegister.txtLastName, "your last name",
				document.frmRegister.txtCompany, "your company name",
				document.frmRegister.txtBusinessType,"your company's business type",
				document.frmRegister.txtEmail, "your email");
	if (!isFull)
	{
		return false;
	}
	if(document.frmRegister.txtChangePassword.value == "1")
	{
		var isFull = checkforblanks(document.frmRegister.txtPassword, "your new password");
		if (!isFull)
		{
			return false;
		}
	
	   if(document.frmRegister.txtPassword.value != document.frmRegister.txtPasswordVerify.value)
		{
			alert("- Re-enter new password : do not match exactly.\nPlease enter and re-type same password.");
			document.frmRegister.txtPasswordVerify.focus();
			return false;
		}
	}
	return true;
}

function CommitForm(form)
{
	form.submit();
}

function CommitFormById(frmID)
{
	document.getElementById(frmID).submit();
}

///////////////////////////////////////////
// System Base Function collection
////////////////////////////////////////////


////////////////////////////////////////////
//get session 
////////////////////////////////////////////
function getSession(sessionName)
{
	try
	{
		if(sessionName == null || Trim(sessionName) == "")
		{
			return "";
		}
		else
		{
			var sessionValue;
			sessionValue = OpenUrl("../include/getsession.aspx?name=" + sessionName + "&random=" + randomString());
			return sessionValue;
		}
	}
	catch(e)
	{
		alert(e);
	}
}

//***********************************************************
// Message Bar Function collection
//***********************************************************
 //Set loading action
function loadBar(fl)
//fl=1 show
//fl=0 hide
{
  var x,y;
  if (self.innerHeight)
  {// all except Explorer
    x = self.innerWidth;
    y = self.innerHeight;
  }
  else 
  if (document.documentElement && document.documentElement.clientHeight)
  {// Explorer 6 Strict Mode
   x = document.documentElement.clientWidth;
   y = document.documentElement.clientHeight;
  }
  else
  if (document.body)
  {// other Explorers
   x = document.body.clientWidth;
   y = document.body.clientHeight;
  }

    var el=document.getElementById('msgboard');
	if(null!=el)
	{
		if(fl==1)
		{
			msgboardReset();
		}
		var top = (y/2) - 50;
		var left = (x/2) - 150;
		top = top + scrollY;
		left = left + scrollX;		
		if( left<=0 ) left = 10;
		el.style.visibility = (fl==1)?'visible':'hidden';
		el.style.display = (fl==1)?'block':'none';
		el.style.left = left + "px"
		el.style.top = top + "px";
		el.style.zIndex = 2;
	}
}

function msgboardReset()
{
	msgboardSetTitle("Request in processing...");
	msgboardSetMessage("Please wait until this screen is completely loaded.");
	msgboardSetConfirmButton(0);
}

function msgboardSetTitle(title)
{
	document.getElementById("msgboard-title").innerHTML = title;
}

function msgboardSetMessage(msg)
{
	document.getElementById("msgboard-message").innerHTML = msg;
}

function msgboardSetConfirmButton(status)
{
	switch(status)
	{
		case 1:
			document.getElementById("msgboard-btnConfirm").className = "";
			break;
		case 0:
			document.getElementById("msgboard-btnConfirm").className = "hidden";
			break;
		default:
			break;
	}
}

////////////////////////////////////////////////////////////////////////////////////////
// -------------------Application function collection---------------------------
////////////////////////////////////////////////////////////////////////////////////////
function SetOptThumbnail(obj)
{
	var OptThumbnail;
	
	OptThumbnail = document.getElementById("OptThumbnail");
	if (OptThumbnail)
	{
		OptThumbnail.value = obj.value;
	}
}

function RefreshRequest(obj)
{
	var RQList;
	RQList = document.getElementById("RQList");
	if(obj.checked)
	{
		RQList.value = RQList.value + "{" + obj.value + "}";
	}
	else
	{
		RQList.value = RQList.value.replace("{" + obj.value + "}","");
	}
}

function DelRQed(idList)
{
	var LoginStatus;
	LoginStatus = getSession("LoginStatus");
	try
	{
		var result;
		result = "";
		if(Trim(idList)!="")
		{
			//loadBar(1);		
			if(LoginStatus == "0" || Trim(LoginStatus) == "")
			{
				throw "Please login first";
			}
			else
			{
				
				if(confirm("Remove photo(s) from your requested items?"))
				{
					result = OpenUrl("delrequestedfile.aspx?rqlist=" + idList + "&random=" + randomString());
				}
				else
				{
					return;
				}
			}
			if(result!="")
			{
				throw result;
			}
			else
			{
				var arrayDeleted;
				arrayDeleted = idList.replace("}{"," ").replace("{","").replace("}","").split(" ");
				//var divRQList = document.getElementById("divRQList");
				
				for(var i=0;i<arrayDeleted.length;i++)
				{
					RemoveNode("RQID" + arrayDeleted[i]);
				}
			}
		}
		
	}
	catch(e)
	{
		//setTimeout("loadBar(0)",5000);
		//msgboardSetTitle("Error");
		//msgboardSetMessage(e);
		//msgboardSetConfirmButton(1);		
		alert(e);
	}
}

////////////////////////////////////////////////////
//   Add selected files to LightBox & Request List
////////////////////////////////////////////////////
function AddToRQ(addList)
{
	var LoginStatus;
	LoginStatus = getSession("LoginStatus");
	try
	{
		var result;
		result = "";
		if(Trim(addList)!="")
		{
			//loadBar(1);
			//if(confirm("Add photo(s) to your cart?"))
			//{
				if(LoginStatus == null || LoginStatus == "0" || Trim(LoginStatus) == "")
				{
					//result = OpenUrl("addtemprequestfiles.aspx?rqlist=" + addList);
					result = OpenUrl("addtemprequestfiles.aspx?rqlist=" + addList + "&random=" + randomString());
				}	
				else
				{
					//result = OpenUrl("addrequestfiles.aspx?rqlist=" + addList);
					result = OpenUrl("addrequestfiles.aspx?rqlist=" + addList + "&random=" + randomString());
				}
				if(Trim(result)!="")
				{
					alert(result);
				}
			//}
			//else
			//{
				//return;
			//}
		}
	}
	catch(e)
	{
		alert(e);
	}
}


function DelRQ(idList)
{
	var LoginStatus;
	LoginStatus = getSession("LoginStatus");
	try
	{
		var result;
		result = "";
		if(Trim(idList)!="")
		{
			//loadBar(1);		
			if(confirm("Remove photo(s) from your cart?"))
			{
				if(LoginStatus == "0" || Trim(LoginStatus) == "")
				{
					result = OpenUrl("deltemprequestfiles.aspx?rqlist=" + idList + "&random=" + randomString());
				}
				else
				{
					result = OpenUrl("delrequestfiles.aspx?rqlist=" + idList  + "&random=" + randomString());
				}
				if(result!="")
				{
					alert(result);
				}
				else
				{
					var arrayDeleted;
					arrayDeleted = idList.replace("}{"," ").replace("{","").replace("}","").split(" ");
					//var divRQList = document.getElementById("divRQList");
					
					for(var i=0;i<arrayDeleted.length;i++)
					{
						RemoveNode("Photo" + arrayDeleted[i]);
					}
				}
			}
			else
			{
				return;
			}
		}
		//setTimeout("msgboardSetTitle('Success');msgboardSetMessage('Photos have been removed from your cart successfully.');msgboardSetConfirmButton(1)",1000);
		//setTimeout("loadBar(0)",5000);
		//var tblRQList;
//		tblRQList = document.getElementById("tblRQList");
//		var i;
//		if(tblRQList)
//		{
//			if(tblRQList.rows.length > 0)
//			{
//				for(i=tblRQList.rows.length-1;i>=0;i--)
//				{
//					//if(tblMedia.rows[i].cells[0].firstChild.value == MediaToDelete)
//					
//					if(idList.indexOf(tblRQList.rows[i].cells[1].firstChild.getAttribute("RQID")) >= 0)
//					{
//						tblRQList.deleteRow(i);
//					}
//				}
//			}
//		}
		
	}
	catch(e)
	{
		alert(e);
		//setTimeout("loadBar(0)",5000);
		//msgboardSetTitle("Error");
		//msgboardSetMessage(e);
		//msgboardSetConfirmButton(1);		
		//alert(e);

	}
}

function AddSelectedToRQ()
{
	var List;
	List = document.getElementById("RQList");
	if(List)
	{
		AddToRQ(List.value);
	}
}

/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//  Add all files to LightBox & Request List
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
function AddAllToRQ()
{
	var allList;
	allList = document.getElementById("AllRQList");
	//alert(allList);
	//alert(allList.value);
	if (allList)
	{
		AddToRQ(allList.value);
	}
}


function SwitchPasswordBox()
{
	var  PasswordBox ,SwitchPaswodButton ;
	 PasswordBox = document.getElementById("PasswordBox");
	 SwitchPasswordButton = document.getElementById("btnSwitchPasswordBox");
	 if(PasswordBox.className == "hidden")
	 {
		 //SwitchPasswordButton.value = "Don't Change";
		 PasswordBox.className = "";
		 document.getElementById("txtChangePassword").value = "1";	
		 if(document.getElementById("txtOldPassword"))
		 {
			 document.getElementById("txtOldPassword").focus();
		 }
		 else
		 {
			 document.getElementById("txtPassword").focus();
		 }
	 }
	 else
	 {
		 //SwitchPasswordButton.value = "Change";
		 PasswordBox.className = "hidden";
 		 document.getElementById("txtChangePassword").value = "0";
		 if(document.getElementById("txtOldPassword"))
		 {
			 document.getElementById("txtOldPassword").value = "";
		 }
		 document.getElementById("txtPassword").value = "";
		 document.getElementById("txtPasswordVerify").value = "";
	 }
}

function doTopSearch(form)
{
	if(Trim(document.getElementById("topkeystring").value) == "")
	{
		alert("Please enter a searching keyword.");
		document.getElementById("topkeystring").focus();
	}
	else
	{
		CommitForm(form);
	}
}

function doWithinSearch(form)
{
	if(Trim(document.getElementById("withinkeystring").value) == "")
	{
		alert("Please enter a searching keyword.");
		document.getElementById("withinkeystring").focus();
	}
	else
	{
		CommitForm(form);
	}
}

function doAdvanceSearch(form)
{
	CommitForm(form);

}

function toggleCheckGroup(obj)
{
    if(obj)
    {
        var groupName = obj.value;
        if(groupName)
        {
            if (document.all)
	        {
		        obs = document.all.tags("input");
	        }
	        else
	        {
		        obs = document.getElementsByTagName("input");
	        }
	        for ( var i = 0; i < obs.length; i ++) 
	        {
		        if(obs[i].type == "checkbox")
		        {
		            if(obs[i].getAttribute("groupname"))
		            {
		                if(obs[i].getAttribute("groupname") == groupName)
		                {
		                    obs[i].checked = obj.checked;
		                }
		             }
		        }
	        }
        }
    }
}

function getCheckGroupValue(groupName)
{
	var ret = Array();
	if(groupName) {
		if (document.all) {
			obs = document.all.tags("input");
		}
		else {
			obs = document.getElementsByTagName("input");
		}
		for ( var i = 0; i < obs.length; i ++) {
			if(obs[i].type == "checkbox") {
				if(obs[i].getAttribute("groupname")) {
					if(obs[i].getAttribute("groupname") == groupName) {
						if( obs[i].checked ) {
							ret.push(obs[i].value);
						}
					}
				 }
			}
		}
	}
	return ret;
}

function CheckListJumpTo(obj) {
	if(obj.getAttribute("JumpGroupName")) {
		var jumpUrl = obj.getAttribute("JumpUrl");
		if(jumpUrl) {
			var CheckList = getCheckGroupValue(obj.getAttribute("JumpGroupName"));
			if(CheckList.length > 0) {
				parent.location = jumpUrl + CheckList.join(",");
			}
			else {
				alert("Nothing selected yet!");
			}
		}
	}
}

