function doPaging(currentPosition, showAll, defaultAction)
{
	var form = document.getElementById("form");
//	var action = document.getElementById("actionID");
	var srcCurrentPosition = document.getElementById("currentPosition");
	var srcShowAll = document.getElementById("showAll");
	if(form.actionForm != undefined)
	{
		form.action = form.actionForm.value;
	}
//	action.value = defaultAction;
	srcCurrentPosition.value = currentPosition;
	srcShowAll.value = showAll;
	
	form.submit();
}

function checknumber(number){
var x=number
	var anum=/(^\d+$)|(^\d+\.\d+$)/
	if (anum.test(x)){
		testresult=true;
	}
	else{
		testresult=false;
	}
	return (testresult);
}
/*
function isFloat(floatValue){

	var commission=floatValue.value;
	var firstPos=commission.indexOf(".");
	var nrLength=commission.length;
	var flaotCommission=parseFloat(commission);
	
	if(firstPos<commission.lastIndexOf(".")){
		return false;
	}
		
	if(firstPos<0){
		if(!checknumber(commission)){
				return false;
		}
	}else {
		nr1=commission. substr(0,firstPos);
		nr2=commission. substr(firstPos+1,commission.length);
		if(!(checknumber(nr1)&&checknumber(nr2))){
				return false;
		}
	}
	return true;
}*/	

var reFloat = /^((\d+(\.\d*)?)|((\d*\.)?\d+))$/;
var reInteger = /^\d+$/;
var reEmail = /^[a-zA-Z0-9][a-zA-Z0-9._-]{0,}[@](((\w{1,})[.]){1,})([a-zA-Z]{1,})$/;
var reDate = /^([12][90]\d\d)-(\d|[012]\d|3[01])-(\d|0\d|1[012])$/;
var rDate=/^([12][90][0-9]{2})[-]?(0[1-9]|1[0-2])[-]?(0[1-9]|[12][0-9]|3[01])$/;

function isEmail(s) {
	return reEmail.test(s);
}
function isFloat (s) {     
  return reFloat.test(s);
}
function isInteger (s) {
    return reInteger.test(s);
}
function checkdate(s) {
	return reDate.test(s);
}
function checkdate1(s) {
	return rDate.test(s);
}

function LRTrim(str)
{
	var strTrim = "";
	len = str.length;

	// Find non white space at start
	for (i=0; i < len; i++)
	{
		strChar = str.charAt(i);
		if (strChar != " " && strChar != "\t" && strChar != "\n" && strChar != "\r")  {
			break;
		}
	}

	//Find non white space at end
	for (j=(len - 1); j > i; j--)
	{
		strChar = str.charAt(j);
		if (strChar != " " && strChar != "\t")
			break;
	}

	// Loop through and copy the remaining data
	for (k=i; k <= j; k++)
		strTrim += str.charAt(k);

	return strTrim;
}


var winOpen = null;
function computeLeftWin(winWidth){
	returnValue= eval((screen.width - winWidth)/2);
	return returnValue;
}
function computeTopWin(winHeight){
	returnValue= eval((screen.height - winHeight)/2);
	return returnValue;
}

function openPopUpWindow(){}

function openPopUp(windowURL) {
  winOpen = window.open(windowURL,'opener','toolbar=yes,location=yes,scrollbars=no,resizable=yes,width=500,height=300');
  return winOpen;
  }

function openPopUp2(windowURL, windowName, toolBar, scrollBars, reSize, winWidth, winHeight){
  winOpen = window.open(windowURL,windowName,"toolbar=" + toolBar + ",scrollbars=" + scrollBars + ",resizable=" + reSize + ",width=" + winWidth + ",height=" + winHeight+",left="+computeLeftWin(winWidth)+",top="+computeTopWin(winHeight)+",status=yes");
  return winOpen;
}

function trim(strText) {
	// this will get rid of leading spaces
	while (strText.substring(0,1) == ' ')
		strText = strText.substring(1, strText.length);

	// this will get rid of trailing spaces
	while (strText.substring(strText.length-1,strText.length) == ' ')
		strText = strText.substring(0, strText.length-1);

	return strText;
}

function textCounter(field, maxlimit) {
	if (field.value.length > maxlimit) // if too long...trim it!
	field.value = field.value.substring(0, maxlimit);
	// otherwise, update 'characters left' counter
	return true;
}

function emailCheck (emailStr) {
	var checkTLD=1;
	var knownDomsPat=/^(com|net|org|edu|int|mil|gov|arpa|biz|aero|name|coop|info|pro|museum)$/;
	var emailPat=/^(.+)@(.+)$/;
	var specialChars="\\(\\)><@,;:\\\\\\\"\\.\\[\\]";
	var validChars="\[^\\s" + specialChars + "\]";
	var quotedUser="(\"[^\"]*\")";
	var ipDomainPat=/^\[(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})\]$/;
	var atom=validChars + '+';
	var word="(" + atom + "|" + quotedUser + ")";
	var userPat=new RegExp("^" + word + "(\\." + word + ")*$");
	var domainPat=new RegExp("^" + atom + "(\\." + atom +")*$");
	var matchArray=emailStr.match(emailPat);

	if (matchArray==null) {
		alert("Email address seems incorrect (check @ and .'s)");
		return false;
	}
	
	var user=matchArray[1];
	var domain=matchArray[2];

	// Start by checking that only basic ASCII characters are in the strings (0-127).
	for (i=0; i<user.length; i++) {
		if (user.charCodeAt(i)>127) {
			alert("Ths username contains invalid characters.");
			return false;
   	}
	}
	for (i=0; i<domain.length; i++) {
		if (domain.charCodeAt(i)>127) {
			alert("Ths domain name contains invalid characters.");
			return false;
	   }
	}

	// See if "user" is valid 
	if (user.match(userPat)==null) {
		// user is not valid
		alert("The username doesn't seem to be valid.");
		return false;
	}

	var IPArray=domain.match(ipDomainPat);
	if (IPArray!=null) {
		// this is an IP address
		for (var i=1;i<=4;i++) {
			if (IPArray[i]>255) {
				alert("Destination IP address is invalid!");
				return false;
			}
		}
		return true;
	}

	// Domain is symbolic name.  Check if it's valid.
	var atomPat=new RegExp("^" + atom + "$");
	var domArr=domain.split(".");
	var len=domArr.length;
	for (i=0;i<len;i++) {
		if (domArr[i].search(atomPat)==-1) {
			alert("The domain name does not seem to be valid.");
			return false;
		}
	}

	if (checkTLD && domArr[domArr.length-1].length!=2 && 
		domArr[domArr.length-1].search(knownDomsPat)==-1) {
		alert("The address must end in a well-known domain or two letter " + "country.");
		return false;
	}

	// Make sure there's a host name preceding the domain.
	if (len<2) {
		alert("This address is missing a hostname!");
		return false;
	}
	return true;
}

function CheckEmail() {
	var action = "user.do?method=checkEmail";
	var email = document.getElementById("userDetails.email");
	var id = document.getElementById("userDetails.id");
	
	if( trim(email.value) != ''){
		action += "&email=" + trim(email.value);
		if(id != null){
			action += "&userID=" + trim(id.value);
		}
		openPopUp(action,'_new','yes','yes','yes','450','400');
	}else{
		alert("Please enter a email !");
	}
}
function WhereToFindMachineID() {
	var action = "http://www.3cim.com/opbhelp/help_machineid.html";
	winOpen = window.open(action,'_new','toolbar=no,location=no,scrollbars=yes,resizable=yes,width=650,height=580');
}

function closeWindow(){
	window.close();
}

//for upload/update ST/Pano
function changeUploadingSystemST(userColumn){
	var tempID=document.addtour.tempID.value;
	var action=document.getElementById("ac");
	
	var uplSys = document.addtour.SystemST[document.addtour.SystemST.selectedIndex].value;
	if(action.value == "3"){
		document.addtour.action="tour.do?method=addSlideTourReseller&tempID=" + tempID + userColumn + "&uploadType="+uplSys;
	}else if(action.value == "5"){
		document.addtour.action="tour.do?method=addSlideTourPhoto&tempID=" + tempID + userColumn + "&uploadType="+uplSys;
	}else{
		document.addtour.action="tour.do?method=addSlideTour&tempID=" + tempID + userColumn + "&uploadType="+uplSys;
	}
	//alert(document.addtour.System[0].checked + "  " + document.addtour.System[1].checked);
	if (document.addtour.SystemST[0].checked == true ){
		return;
	}
	document.addtour.submit();
}

function changeUploadingSystemVT(userColumn){
	var uplSys = document.addtour.SystemVT[document.addtour.SystemVT.selectedIndex].value;
	var action=document.getElementById("ac");
	var noPano = document.addtour.noVT2.value;
		
	if(!isInteger(noPano)){
		noPano = document.addtour.noVT.value
		document.addtour.noVT2.value = "";
	}
	
	var tempID=document.addtour.tempID.value;
	if(action.value == "3"){
		document.addtour.action="tour.do?method=addVistaTourReseller&tempID=" + tempID + userColumn + "&noVT=" + noPano +"&uploadType="+uplSys;
	}else if(action.value == "5"){
		document.addtour.action="tour.do?method=addVistaTourPhoto&tempID=" + tempID + userColumn + "&noVT=" + noPano +"&uploadType="+uplSys;
	}else{
		document.addtour.action="tour.do?method=addVistaTour&tempID=" + tempID + userColumn + "&noVT=" + noPano +"&uploadType="+uplSys;
	}
	if (document.addtour.SystemVT[0].checked == true ){
		return;
	}
	document.addtour.submit();
}

function setButtonsFunctionality(){
	var form = document.getElementById("form");
	var src=document.getElementById("src");
	var dest=document.getElementById("dest");
	
	form.selectAllButton.disabled = (src.length==0);
	form.deselectAllButton.disabled = (dest.length==0);
	if (form.selectClientButton != null) {
		form.selectClientButton.disabled = (src.selectedIndex<0);
		form.deselectClientButton.disabled = (dest.selectedIndex<0);
	}
	else if (form.selectPhotoButton != null) {
		form.selectPhotoButton.disabled = (src.selectedIndex<0);
		form.deselectPhotoButton.disabled = (dest.selectedIndex<0);
	}
}

function selectUser(src,dest){
	var src=document.getElementById(src);
	var dest=document.getElementById(dest);
	while(src.selectedIndex>-1){
		var newOpt = document.createElement("OPTION");
		newOpt.text=src.options[src.selectedIndex].text;
		newOpt.value=src.options[src.selectedIndex].value;
		dest.add(newOpt,toPos(newOpt.text,0,dest.length-1,dest));
		src[src.selectedIndex]=null;
	}
	setButtonsFunctionality();
	
}

function selectAll(src,dest){
	var src=document.getElementById(src);
	var dest=document.getElementById(dest);
	for(i=src.length-1;i>=0;i--){
		var newOpt = document.createElement("OPTION");
		newOpt.text=src.options[i].text;
		newOpt.value=src.options[i].value;
		dest.add(newOpt,toPos(newOpt.text,0,dest.length-1,dest));
		src[i]=null;
	}
	setButtonsFunctionality();
}

function toPos(text,inf,sup,dest){
	if(sup< inf ) return inf;
	if(dest[inf].text.toLowerCase()>=text.toLowerCase()){
		return inf;
	}
	if(dest[sup].text.toLowerCase()<=text.toLowerCase()){
		return sup+1;
	}
	var med=Math.ceil((inf+sup)/2);
	if(inf<sup-1){
		if(dest[med].text.toLowerCase()<text.toLowerCase()){
			return toPos(text,med,sup,dest);
		} else {
			return toPos(text,inf,med,dest);
		}
	} else return sup;
}

function sendMailClients(){
	var form = document.getElementById("form");
	var dest = document.getElementById("dest");
	var mailTo = document.getElementById("mailTo");
	var result="";
	if(dest.length==0){
		alert ("You must select al least one user!");
		return false;
	}
	for(i=0;i<dest.length;i++){
		result += dest.options[i].value+";";
	}
	form.clientMailTo.value = result;
	//document.userForm.action =  "user.do?method=sendMailToClients";
	document.userForm.action = document.userForm.actionForm.value;
	document.userForm.submit();
 
}
function refreshParentAndClose(){
	window.parent.opener.location.reload();
	self.close();
}

//Note: browser flags are needed by multiple modules -- don't remove
var ns=(document.layers);
var ie=(document.all);
var w3=(document.getElementById && !ie);
function showObject(e,id,tdid, msg) { 
	 if(e.clientX > 700){
	 	tleft = 700;
	 }else{
	 	tleft = e.clientX + document.body.scrollLeft + 10;
	 }
     ttop = e.clientY + document.body.scrollTop + 10; 
	var d, d1;
if (ie) { 
	 d = document.all[id];
	 d1 = document.all[tdid];
	 //alert(d1);
  } 
  else if (w3) { 
     d = document.getElementById(id);
	 d1 = document.getElementById(tdid);
  }
  d.style.visibility = "visible"; 
  d.style.left = tleft; 
  d.style.top = ttop; 

  d1.innerHTML = msg;
  
} 
function hideObject(id) { 
if (ie) { 
     document.all[id].style.visibility = "hidden"; 
  } 
  else if (w3) { 
     document.getElementById(id).style.visibility = "hidden"; 
  } 
} 
function isdef( vname)
{
    return ( typeof( window[ vname]) == "undefined") ? false : true;
}

