
function CheckBrowser()
{
	var NEEDUPGRADE = false;

	var userAgent = navigator.userAgent.toLowerCase();

	// check Browser
	var appName = navigator.appName.toLowerCase();
	var NN = appName.indexOf("netscape") != -1;
	var IE = false;

	// check Browser version
	var appVer;
	var p = userAgent.indexOf("msie");
	if (p!=-1)
	{
		appVer = userAgent.substring(p + 5);
		IE = true;
	}
	else
		appVer = navigator.appVersion;

	var ver = parseInt(appVer);
//	if(win && !win16)
//		win32=true;

	if(IE==true && ver<=3 )
		NEEDUPGRADE = true;
	else if(NN==true && ver<=3)
		NEEDUPGRADE = true;
	else if(!IE && !NN)
		NEEDUPGRADE = true;
	else	
		NEEDUPGRADE = false;
	
	var upgradeUrl = "/browserdetect.html";
	var upgradeWin;
	if(NEEDUPGRADE){
		upgradeWin = window.open(upgradeUrl,"upgrade","resizable,width=540,height=300");
	}
}

// returns "IE", "NS" or "OTHER"
function getBrowserType()
{
	// check Browser
	var userAgent = navigator.userAgent.toLowerCase();
	var appName = navigator.appName.toLowerCase();
	var NS = appName.indexOf("netscape") != -1;
	if(NS)
		return "NS";

	var p = userAgent.indexOf("aol");
	if(p!=-1)
		return "AOL";

	p = userAgent.indexOf("msie");
	if (p!=-1) 
		return "IE";
		
	//else
	return "OTHER";
}
// returns Browser major version only, returns number
function getBrowserVersion()
{
	// check OS 
	var userAgent = navigator.userAgent.toLowerCase();

	// check Browser
	var appName = navigator.appName.toLowerCase();
	var NN = appName.indexOf("netscape") != -1;

	var IE = false;
	// check Browser version
	var appVer;
	var p = userAgent.indexOf("msie");
	if (p!=-1)
	{
		appVer = userAgent.substring(p + 5);
		IE = true;
	}
	else
		appVer = navigator.appVersion;

	var ver = parseInt(appVer);
	return ver;
}


function getPlatform()
{
	var userAgent = navigator.userAgent.toLowerCase();
	var win = userAgent.indexOf("win") != -1;
	var mac = userAgent.indexOf("mac") != -1;
	var macppc = mac && (userAgent.indexOf("ppc") != -1 || userAgent.indexOf("powerpc") != -1);
	var win16 = userAgent.indexOf("win16") != -1 || userAgent.indexOf("windows 3.1") != -1 || userAgent.indexOf("16bit") != -1;
	var unix = userAgent.indexOf("nux")!=-1 || userAgent.indexOf("nix")!=-1 || userAgent.indexOf("rix")!=-1;
	
	if(win && !win16)
		return "WIN32";
	else if(win16)
		return "WIN16";
	else if(mac)
		return "MAC";
	else if(macppc)
		return "MACPPC";	
	else if(unix)
		return "UNIX";
	else 
		return "OTHER";
}



	function validateAllEmails(allEmails)
	{
		curPos = 0;
		if(allEmails==null || allEmails==""){
			alert("Email address can't be empty!");
			return false;
		}
		while(curPos<allEmails.length) {
			pos = allEmails.indexOf(',', curPos);
			if(pos==-1)
				strEmail = allEmails.substring(curPos);
			else
				strEmail = allEmails.substring(curPos, pos);
				
			if(!validateEmail(strEmail)) {
				alert(strEmail + " is not a valid email address!");
				return false;
			}
			if(pos==-1)
				return true;
			curPos=pos+1;
		}
		alert("Email address can't be empty or end with \",\" !");
		return false;
		
	}

	
   	function validateAllEmailsPC(allEmails)
	{
		curPos = 0;
	
		while(curPos<allEmails.length) {
			pos = allEmails.indexOf(',', curPos);
			if(pos==-1)
				strEmail = allEmails.substring(curPos);
			else
				strEmail = allEmails.substring(curPos, pos);
				
			if(!validateEmail(strEmail)) {
				alert(strEmail + " is not a valid email address!");
				return false;
			}
			if(pos==-1)
				return true;
			curPos=pos+1;
		}
		return false;
	}

	function validateEmail(strEmail) {
		// make sure it's not null
		if(strEmail==null || strEmail=="")
			return false;
		//skip space
		i=0;
		while(strEmail.charAt(i)==' ' || strEmail.charAt(i)=='	')
			i++;
		
		
		//in case becky.wang.1@12.34.56, matching becky.wang.1
		while(true) {
			// The first one must be alphanumeric
			if(i==strEmail.length || !isValidChar(strEmail.charAt(i)))
				return false; 
		
			// matches "ecky" part of email								 
			while(i<strEmail.length && isValidChar(strEmail.charAt(i)) )
				i++;
			if(strEmail.charAt(i)!='.') 
				break; // should == '@'
			else 
				i++;
		}
		
		if(i==strEmail.length)
			return false;
		else if(strEmail.charAt(i)!='@')
			return false;
		
		i++;
		
		//matches host part of email
		if(!isValidChar(strEmail.charAt(i)))
			return false;
			
		i++;
		while(i<strEmail.length && isValidChar(strEmail.charAt(i)))
			i++;
			
		//matches .com part			
		if(i==strEmail.length)
			return false;
		if(strEmail.charAt(i) != '.') 
			return false;
		i++;  
		// we are up to id@host.
		while(i<=strEmail.length) {
			if(i==strEmail.length)
				return false;
			if( !isValidChar(strEmail.charAt(i)) )
				return false;
			else 
				i++;
			while(i<strEmail.length && isValidChar(strEmail.charAt(i)) )
				i++;
			//either i=length or not valid char	
			if(i==strEmail.length)
				return true;
			else if(strEmail.charAt(i)=='.'){
				i=i+1;
				continue;
			}
			else if(strEmail.charAt(i)==' ' || strEmail.charAt(i)=='	')
				return true;
		
		}
		return false; // can't happen
		
	}
	
	function isValidChar(ch){
		if(ch>='0' && ch<='9')
			return true;
		else if(ch>='A' && ch<='Z')
			return true;
		else if(ch>='a' && ch<='z')
			return true;
		else if(ch=='-' || ch=='_' )
			return true;
		return false;
		
	}					


function ClickPrint()
{
	var msg = "Sorry, the function is not available for this version of Browser right now. A new version is coming soon.";
	if(getBrowserType()=="NS" && getBrowserVersion()<4) {
		alert(msg);
	}
	else if(getBrowserType()=="IE" && getBrowserVersion()<5) {
		alert(msg);
	}	
	else
		window.print();

}

function getClientPlatform(){
	var sys = window.navigator.platform.toLowerCase();
	if ( sys.indexOf("win")!=-1)
		sys = "win";
	else if ( sys.indexOf("mac")!=-1)
		sys = "mac";
	else
		sys = "";
	return sys;
}

function setUrlParamValue (url, param, newVal ){

	var urlLo = url.toLowerCase();
	var paramLo = param.toLowerCase();
	var pos1 = urlLo.indexOf("&"+ paramLo + "=");
	var urlSubmit;
	if ( pos1 == -1 ){
		urlSubmit = url + "&" + param + "=" + newVal;
	}else{
		var pos2 = url.indexOf ('&', pos1+1 );	
		var part1 = url.substring ( 0, pos1 );
		var part2;
		if ( pos2 !=-1){
			part2 = url.substring( pos2 );
		}else{
			part2 ="";
		}
		urlSubmit = part1 + part2+ "&" + param + "=" + newVal;
	}
	
	return urlSubmit;
}

function LaunchDesktopPrint (url){
	var urlSubmit = url + "&browserversion=" + getBrowserType() + "&clientplatform=" + getClientPlatform();	
	if ( getBrowserType() == 'NS')
		window.open(urlSubmit, "LocalPrint", "resizable=yes,scrollbars=yes,status=yes,toolbar=no, menubar=no");	
	else
		window.open(urlSubmit, "LocalPrint", "width=660, height=650, resizable=yes,scrollbars=yes,status=yes,toolbar=no, menubar=no");	
	return;
}

function WorkshopPrint (){
	var url;
	
	var type = getBrowserType ();
	if(type=="NS"){
		var nsfrm = getCSSPElement("NSPICTFRAME");
		url = nsfrm.src;
	}else if(type=="IE" || type=="AOL")
		url = document.frames("IEPICTFRAME").document.location.href;
	else{
		alert("Sorry we don't support your browser!");
		return;
	}		
	var urlSubmit = setUrlParamValue (url, "command", "print");
	urlSubmit = setUrlParamValue (urlSubmit, "needipro", "0");
	
	LaunchDesktopPrint(urlSubmit);
} 

function MorphingPrint (){
	var url;
	url = document.location.href;

	var urlSubmit = setUrlParamValue (url, "command", "print");
	urlSubmit = setUrlParamValue (urlSubmit, "needipro", "0");
	
	LaunchDesktopPrint(urlSubmit);
} 

function printPictureWithID (pictid){
	var url = "/servlet/com.localprint.LargeViewPrint?com=arcsoft&awp=" + "&PICT_ID=" + pictid; 
	LaunchDesktopPrint (url);
}


function ClickDownload()
{
	var msg = "PCs right click (Macs click and hold) on the image and select \"Save Image As\" from the popup menu.";
	alert(msg);
}

function goSecureSite(url)
{
	secureUrl = "https://" + location.hostname + url;
	location = secureUrl;
}

function goNormalSite(url)
{
	secureUrl = "http://" + location.hostname + url;
	location = secureUrl;
}

function confirmCancelEmail(msg)
{
	if(document.email.EMAIL_TO.value!="") {
		if(window.confirm(msg))
			return true;
		else
			return false;
	}
	else
		return true;
}	

function confirmCancelEmail(msg,url)
{
	if(document.email.EMAIL_TO.value!="") {
		if(window.confirm(msg)){
			location = url;
			return;
		} else
			return;
	}
	else {
		location = url;
		return;
	}	

}	

function ValidateCardNumber(cardNum)
{
	if(cardNum.length<9)
		return false;
		
	for(i=0; i<cardNum.length; ++i) {
		var ch = cardNum.charAt(i);
		if( (ch<'0'||ch>'9') && ch!=' ' && ch!='-')
			return false;
	}
	return true;	
}

function Trim(str)
{
	var len = str.length;
	var i=0; var j=len-1;
	while(i<len && str.charAt(i)==' ') 
		i++;
	while(j>=0 && str.charAt(j)==' ')
		j--;

	str = str.substring(i, j+1);
	return str;		
}

function openWindowMail(url){
		var randomNum = Math.floor(Math.random()*100000);
		url = url+"&radm="+randomNum;
		//alert(url);
		newAdd = window.open(url,"AddressLists","width=560,height=500,resizable=yes,scrollbars=yes");
}

function pictDel(pictid,gtype){
	var msg = "Are you sure to delete this photo from Gallery?";
	if(window.confirm(msg)) {
		window.opener.document.galleryview.selprocess.value = gtype;
		window.opener.document.galleryview.jobtype.value = gtype;
		window.opener.document.galleryview.pub_pictid.value = pictid;

		window.opener.document.galleryview.submit();
		window.close();
	}
}

function checkLoginID( sUsername){ 
	checkLoginID( sUsername,'yes');
}

function checkLoginID( sUsername,aflag){
	var validflag = true;
	badChar = new Array("!","#","$","%","^","&","*","(",")","-","+","=","[","]","{","}","|","\\","`","~",";",":","'","\"","/","?",">","<",","," ");
	//check login id does not have weird chars
	if( isNotBlank(sUsername) )
	{
		for (var i =0; i < badChar.length; ++i) 
		{
			if ( sUsername.indexOf(badChar[i]) >= 0 )
			{
				if(aflag != "" && aflag== 'yes'){
					alert("Please use alpha-numeric characters without space for your login id. \n");
				}
				validflag = false;
				break;
			}
		}
	}else
		validflag = false;
	return validflag;
}

function CheckAll(frm){
	var frmElm = frm.elements;
	for (var i = 0; i < frmElm.length; ++i) {
		if (frmElm[i].type == "checkbox" ){ 
			frmElm[i].checked =true;
		}
	}     
}

function UncheckAll(frm){
	var frmElm = frm.elements;
	for (var i = 0; i < frmElm.length; ++i) {
		if (frmElm[i].type == "checkbox" ){ 
			frmElm[i].checked =false;
		}
	}     
}

function goURL(url) {
	window.location = url;
}

function goURL(msg,url) {
	if(window.confirm(msg))
		window.location = url;
	else
		return;
}


