function openHelp(objName){
	setStyleAttr(objName, "visibility", "visible");
	PickUpLayerWithId(objName);
}

function closeHelp(objName){
	setStyleAttr(objName, "visibility", "hidden");
	SetZWithId(objName, 0);
}

function doLayout(){
	setStyleAttr('resultsNumbDiv', 'left', '0px');
	setStyleAttr('resultsNumbDiv', 'top', '0px');
	setStyleAttr('resultsNumbDiv', 'width', '300px');
	setStyleAttr('resultsNumbDiv', 'height', '500px');

	setStyleAttr('resultsPtDiv', 'left', '300px');
	setStyleAttr('resultsPtDiv', 'top', '0px');
	setStyleAttr('resultsPtDiv', 'width', '300px');
	setStyleAttr('resultsPtDiv', 'height', '500px');

	setStyleAttr('resultsCompDiv', 'left', '600px');
	setStyleAttr('resultsCompDiv', 'top', '0px');
	setStyleAttr('resultsCompDiv', 'width', '300px');
	setStyleAttr('resultsCompDiv', 'height', '500px');
}

function setStyleAttr(objName, attr, value){
	var cmd="";
	if(document.all){
        cmd = "document.all['"+ objName +"'].style."+ attr +"='"+ value +"';";        
	}
	else if(document.getElementById){
		cmd = "document.getElementById('"+ objName +"').style."+ attr +"='"+ value +"';";
	}
	else if(document.layers){
		cmd = "document.layers['"+ objName +"']."+ attr +"='"+ value +"';";
	}
	else{}
	return eval(cmd);
}



//==============================================================
// Functions for moving help layer
//==============================================================

function GetLayer(layer) {
	var rValue = null;
	if(document.all){
		rValue = document.all[layer];
	}
    else if(document.getElementById){
		rValue = document.getElementById(layer);
    	}
    else if(document.layers){
       	rValue = document.layers[layer];
    }
    else{}
	return rValue;
}

function Layer(layer, x, y){
    this.id = GetLayer(layer);
    Move(x, y, this.id);
    this.ClickedX = 0;
	this.ClickedY = 0;
}

function SetZ(z, layer){
	if(layer.zIndex){
		layer.zIndex = z;
    }
	else if(layer.style.zIndex){
		layer.style.zIndex = z;
	}
    else{
		layer.style.zIndex = z;
	}

	
}

function GetZ(layer){
	if(layer.zIndex){
		return(layer.zIndex);
    }
	else if(layer.style.zIndex){
		return(layer.style.zIndex);
	}
    else{
		return(layer.style.zIndex);
	}
}

function GetX(layer){
	if(layer.style.left){
		return(parseInt(layer.style.left));
	}
    else if(layer.left){
		return(layer.left);
    }
	else if(layer.style.pixelLeft){
		return(layer.style.pixelLeft);
	}
    else{}
}

function GetW(layer){
	if(layer.style.width){
		return(parseInt(layer.style.width));
	}
    else if(layer.clip){
		return(layer.clip.width);
    }
	else if(layer.style.pixelWidth){
		return(layer.style.pixelWidth);
	}
	else if(layer.offsetWidth){
		return(layer.offsetWidth);
	}
	else{}
}

function GetY(layer){
	if(layer.style.top){
		return(parseInt(layer.style.top));
	}
    else if(layer.top){
		return(layer.top);
    }
	else if(layer.style.pixelTop){
		return(layer.style.pixelTop);
	}
	else{}
}

function GetH(layer){
	if(layer.style.height){
		return(parseInt(layer.style.height));
	}
    else if(layer.clip){
		return(layer.clip.height);
    }
	else if(layer.style.pixelHeight){
		return(layer.style.pixelHeight);
	}
	else if(layer.offsetHeight){
		return(layer.offsetHeight);
	}
	else{}
}


function Move(x, y, layer){
	if(navigator.appName == 'Netscape'){
		if(parseInt(navigator.appVersion) == 5){
             layer.style.left = x;
             layer.style.top = y;
		}
		if(parseInt(navigator.appVersion) == 4){
             layer.left = x;
             layer.top = y;
		}
	}
	else{
		layer.style.pixelLeft = x;
        layer.style.pixelTop = y;
    }
}

function SetZWithId(id, num) {
	
	if(id.indexOf('Focus')>-1 || id.indexOf('ductile')>-1)
		SetZ(num, Layers[1].id);
	else
		SetZ(num, Layers[0].id);
	
}

function PickUpLayerWithId(id) {
	
	if(id.indexOf('Focus')>-1 || id.indexOf('ductile')>-1)
		PickUp(1);
	else
		PickUp(0);
	
}

function PickUp(layer) {
    SetZ(100, Layers[layer].id);

    for(var index = 0; index < Layers.length; index++){
       if(index != layer){
          SetZ(50, Layers[index].id);
       }
    }
}

function Selected(x, y, layer){
	var left = GetX(layer);
	var width = GetW(layer);
	var top = GetY(layer);
	var height = GetH(layer);

	if(x > left && x < left + width && y > top && y < top + height){
         return(true);
	}
	else{
         return(false);
    }
}

function mouseDown(e){
	if ((navigator.appName == 'Netscape' && e.which!=1) 
	|| (navigator.appName == 'Microsoft Internet Explorer' && event.button!=1)) 
		return true;
	var x,y; 
	if(e){
		x = e.pageX;
		y = e.pageY;
	}
	else{
		x = event.x+document.body.scrollLeft;
		y = event.y+document.body.scrollTop;
	}
    if (navigator.appName == 'Netscape' && e.target!=document){
		routeEvent(e);
	}
    ClickedLayer = -1;
    //Check if a div was clicked on.
	var zMax = 0;
    for(var layer = 0; layer < Layers.length; layer++){
		
		if(Selected(x, y, Layers[layer].id)){
			var zCurr = GetZ(Layers[layer].id);
			 if(parseInt(zCurr)>parseInt(zMax)){
				//alert('zCurr:'  + zCurr + ' xMax:' + zMax);
                Layers[layer].ClickedX = x - GetX(Layers[layer].id);
                Layers[layer].ClickedY = y - GetY(Layers[layer].id);
                ClickedLayer = layer;
				zMax = zCurr;
             } 
		}
    }
    if(ClickedLayer != -1){
       PickUp(ClickedLayer);
    }
    if(ClickedLayer == -1) 
	   return true;
    else
	   return false;
}

function mouseMove(e){
	var x,y; 
	if(e){
		x = e.pageX;
		y = e.pageY;
	}
	else{
		x = event.x+document.body.scrollLeft;
		y = event.y+document.body.scrollTop;
	}
    if (navigator.appName == 'Netscape' && e.target!=document){
		routeEvent(e);
	}
	if(ClickedLayer != -1) {
        Move(x - Layers[ClickedLayer].ClickedX,
             y - Layers[ClickedLayer].ClickedY,
	    Layers[ClickedLayer].id);
    }
    if(ClickedLayer == -1) 
		return true;
    else 
		return false;
}

function mouseUp(e){
	var x,y; 
	if(e){
		x = e.pageX;
		y = e.pageY;
	}
	else{
		x = event.x+document.body.scrollLeft;
		y = event.y+document.body.scrollTop;
	}
    if (navigator.appName == 'Netscape' && e.target!=document){
		routeEvent(e);
	}
    ClickedLayer = -1;
    return true;
}

function initLayers() {
	Layers = new Array();
}

function initHelp(){
	ClickedLayer = -1;
    document.onmousedown = mouseDown;
    document.onmousemove = mouseMove;
    document.onmouseup = mouseUp;
    if(navigator.appName == 'Netscape')
            document.captureEvents(Event.MOUSEDOWN | Event.MOUSEMOVE | Event.MOUSEUP);
    Layers[0] = new Layer('helpDiv', 450, 300);
}

function setFocusMovesBack() {
    document.onmousedown = mouseDown;
    document.onmousemove = mouseMove;
    document.onmouseup = mouseUp;
}

function setFocusMovesFalse() {
    document.onmousedown = moveFalse;
    document.onmousemove = moveFalse;
    document.onmouseup = moveFalse;
}

function moveFalse() {
 return false;
}

function CheckLen(Target) {
		var maxLen=459;
		var maxMsg=3;
		var CharsLeft,CharsLeftStr;
        var myForm = Target.form;
        msgLen = myForm.messageContent.value.length;
        senderLen = myForm.sender.value.length;
        //Whitespace before name
        if(senderLen > 0){
                senderLen ++;
        }
        strLen = msgLen + senderLen; 
        if(strLen <= 160){
                CharsLeft = 160 - strLen;
                CharsLeftStr = CharsLeft + " (1)";
        }
        else if(strLen <= 306){
                CharsLeft = 146 - (strLen -160); 
                CharsLeftStr = CharsLeft + " (2)";
        }
        else if(strLen <= 459){
                CharsLeft = 153 - (strLen -160 -146);
                CharsLeftStr = CharsLeft + " (3)";
        }
        else{
                if(Target.name == "messageContent"){
                        myForm.messageContent.value = 
                                myForm.messageContent.value.substring(0, maxLen-senderLen);
                }
                else{
                        myForm.sender.value = myForm.sender.value.substring(0, maxLen-msgLen-1);
                }
                CharsLeftStr = "0 (3)";
        }
        myForm.message.value =  myForm.messageContent.value +" "+ myForm.sender.value;
        myForm.CharsLeft.value = CharsLeftStr;
}

function CheckTemplateLen(Target) {
	var maxLen=459;
	var maxMsg=3;
	var CharsLeft,CharsLeftStr;
	var myForm = Target.form;
	strLen = myForm.messageContent.value.length;
	if(strLen <= 160){
	        CharsLeft = 160 - strLen;
	        CharsLeftStr = CharsLeft + " (1)";
	}
	else if(strLen <= 306){
	        CharsLeft = 146 - (strLen -160); 
	        CharsLeftStr = CharsLeft + " (2)";
	}
	else if(strLen <= 459){
	        CharsLeft = 153 - (strLen -160 -146);
	        CharsLeftStr = CharsLeft + " (3)";
	}
	else{
	        myForm.messageContent.value = 
	        	myForm.messageContent.value.substring(0, maxLen);
	        CharsLeftStr = "0 (3)";
	    }
	myForm.CharsLeft.value = CharsLeftStr;
}

function checkKey(e, pForm, pAction){	
	 var key;
	 if(window.event){
	  key = window.event.keyCode;
	 }
	 else if(e){
	  key = e.which;
	 }
	 if(key == 13){		
		 pForm.action.value=pAction;
		 pForm.submit();
	 }
}
function submitForm(pForm, pAction){	
	pForm.action.value=pAction;
	pForm.submit();	
}
function retrieveByIDClicked(pForm, pID){	
	pForm.action.value='retrieveByID';
	pForm.id.value=pID;
	pForm.submit();	
}

function checkAll(formi){
	var todo = false;
    todo = formi.boxer.value;
    for(i=0;i<formi.length;i++){
	    if(todo == 'false'){
	      formi[i].checked = true;
	    } 
		else {
	      formi[i].checked = false;
	    }
    }
    if(todo == 'false'){
    	formi.boxer.value = true;
    }
    else{
    	formi.boxer.value = false;
    }
}

function changeColorOver(thisfield, defaulttext) {
	var input = document.getElementById(thisfield);
	if (input.value == defaulttext) {
		input.style.color = "#000000";
	}
}

function changeColorOut(thisfield, defaulttext) {
	var input = document.getElementById(thisfield);
	if (input.value == defaulttext) {
		input.style.color = "#CCCCCC";
	}
}


function clickclear(thisfield, defaulttext, color) {
	if(document.getElementById){
		var input = document.getElementById(thisfield);
		if (input.value == defaulttext) {
			input.value = "";
			if (!color) {
				color = "000000";
			}
			input.style.color = "#" + color;
		}	
	} else if(document.all) {
		if (document.all[thisfield].value == defaulttext) {
			document.all[thisfield].value = "";
			if (!color) {
				color = "000000";
			}
			document.all[thisfield].style.color = "#" + color;
		} 
	}
}

function clickrecall(thisfield, defaulttext, color) {
	if(document.getElementById){
		if (document.getElementById(thisfield).value == "") {
			document.getElementById(thisfield).value = defaulttext;
			if (!color) {
				color = "cccccc";
			}
			document.getElementById(thisfield).style.color = "#" + color;
		}
	} else if(document.all) {
		if (document.all[thisfield].value == "") {
			document.all[thisfield].value = defaulttext;
			if (!color) {
				color = "cccccc";
			}
			document.all[thisfield].style.color = "#" + color;
		}
	}
}

// Used before submit
function clearDefaultValues(id1, value1, id2, value2, id3, value3, id4, value4, id5, value5) {

	if(document.getElementById){

		var input1 = document.getElementById(id1);
		var input2 = document.getElementById(id2);
		var input3 = document.getElementById(id3);
		var input4 = document.getElementById(id4);
		var input5 = document.getElementById(id5);
		
		if(input1!=null) {
			if (input1.value == value1) {
				input1.value = "";
			}
		}
		
		if(input2!=null) {
			if (input2.value == value2) {
				input2.value = "";
			}
		}

		if(input3!=null) {
			if (input3.value == value3) {
				input3.value = "";
			}
		}
		if(input4!=null) {
			if (input4.value == value4) {
				input4.value = "";
			}
		}
		
		if(input5!=null) {
			if (input5.value == value5) {
				input5.value = "";
			}
		}

	} /*else if(document.all) {
	}*/
}

function setDefaultColorsAndValues(id1, value1, id2, value2, id3, value3, id4, value4, id5, value5) {

	if(document.getElementById){

		var input1 = document.getElementById(id1);
		var input2 = document.getElementById(id2);
		var input3 = document.getElementById(id3);
		var input4 = document.getElementById(id4);
		var input5 = document.getElementById(id5);
		
		if(input1!=null) {
			if (input1.value == value1 || input1.value == "") {
				input1.style.color = "#CCCCCC";
				if(input1.value == "") {
					input1.value = value1;
				}
			} else {
				input1.style.color = "#000000";
			}
		}

		if(input2!=null) {
			if (input2.value == value2 || input2.value == "") {
				input2.style.color = "#CCCCCC";
				if(input2.value == "") {
					input2.value = value2;
				}
			} else {
				input2.style.color = "#000000";
			}
		}
		
		if(input3!=null) {
			if (input3.value == value3 || input3.value == "") {
				input3.style.color = "#CCCCCC";
				if(input3.value == "") {
					input3.value = value3;
				}
			} else {
				input3.style.color = "#000000";	
			}
		}
		
		if(input4!=null) {
			if (input4.value == value4 || input4.value == "") {
				input4.style.color = "#CCCCCC";
				if(input4.value == "") {
					input4.value = value4;
				}
			} else {
				input4.style.color = "#000000";
			}
		}
		
		if(input5!=null) {
			if (input5.value == value5 || input5.value == "") {
				input5.style.color = "#CCCCCC";
				if(input5.value == "") {
					input5.value = value5;
				}		
			} else {
				input5.style.color = "#000000";	
			}
		}
	} /*else if(document.all) {
	}*/
}

function forceDefaultColorsAndValues(id1, value1, id2, value2, id3, value3, id4, value4, id5, value5) {

	if(document.getElementById){

		var input1 = document.getElementById(id1);
		var input2 = document.getElementById(id2);
		var input3 = document.getElementById(id3);
		var input4 = document.getElementById(id4);
		var input5 = document.getElementById(id5);
		

		if(input1!=null) {
			input1.value = value1;
			input1.style.color = "#CCCCCC";
		}
		
		if(input2!=null) {
			input2.value = value2;
			input2.style.color = "#CCCCCC";
		}
		
		if(input3!=null) {
			input3.value = value3;
			input3.style.color = "#CCCCCC";
		}
		
		if(input4!=null) {
			input4.value = value4;
			input4.style.color = "#CCCCCC";
		}
		
		if(input5!=null) {
			input5.value = value5;
			input5.style.color = "#CCCCCC";
		}
	}
		
}

function replaceCommas(text) {
	while(text.indexOf(",")>-1) {
		text = text.replace(",", " ");
	}
	return text;
}

function removeAsterix(text) {
	while(text.indexOf("*")>-1) {
		text = text.replace("*", "");
	}
	return text;
}

function removeQuestionMark(text) {
	while(text.indexOf("?")>-1) {
		text = text.replace("?", "");
	}
	return text;
}

function removeDoubleAsterix(text) {
	while(text.indexOf("**")>-1) {
		text = text.replace("**", "*");
	}
	return text;
}

function removeDoubleSpace(text) {
	while(text.indexOf("  ")>-1) {
		text = text.replace("  ", " ");
	}
	return text;
}

function removeDoubleCommas(text) {
	while(text.indexOf("..")>-1) {
		text = text.replace("..", ".");
	}
	return text;
}

function filterNum(str) {
    re = /\$|\u00B4|\u2019|\u2018|\u201B|@|#|~|`|\%|\^|\(|\)|\+|\=|\[|\_|\]|\[|\}|\{|\;|\'|\"|\<|\>|\||\\|\!|\$/g;
    return str.replace(re, "");
}

function rtrim(stringToTrim) {
	return stringToTrim.replace(/\s+$/,"");
}

function checkPhoneNumber(id, error) {
	if(document.getElementById){
		var inputField = document.getElementById(id);
		if(inputField.value != "" && inputField.value.indexOf("*")>-1) {
			
			var inp = inputField.value;

			inp = replaceCommas(inp);
			inp = removeDoubleAsterix(inp);
			inp = removeDoubleCommas(inp);
			inp = filterNum(inp);
			inp = removeDoubleSpace(inp);
			inp = rtrim(inp);

			if(isDigit(inp.charAt(0)) && inp.length>5) {
				if(inputField.value.indexOf("*")!=inp.length-1) {
					alert(error);
					return false;
				} 
			}
		}
	}
	return true;
}

function isDigit(c) {
  return "0123456789.".indexOf(c) == -1 ? 0 : 1;
}

function checkFirstChar(id, error) {
	if(document.getElementById){
		var inputField = document.getElementById(id);
		
		var inp = inputField.value;

		inp = replaceCommas(inp);
		inp = removeDoubleAsterix(inp);
		inp = removeDoubleCommas(inp);
		inp = filterNum(inp);
		inp = removeDoubleSpace(inp);
		inp = rtrim(inp);
		
		if(inp.charAt(0)=='*') {
			alert(error);
			return false;
		}
	}
	
	return true;
}


function checkSearchText(id, error) {
	
	//if(true)
	//	return true;
	
	if(document.getElementById){
		var inputField = document.getElementById(id);
		if(inputField.value != "") {
			
			var inp = inputField.value;

			inp = replaceCommas(inp);
			inp = removeDoubleAsterix(inp);
			inp = removeDoubleCommas(inp);
			inp = filterNum(inp);
			inp = removeDoubleSpace(inp);
			inp = rtrim(inp);

			var splits = inp.split(" ");

			var i;
			for(i = 0; i < splits.length; i++){
				var asterix = false;
				var question = false;
				if(splits[i].indexOf("*")>-1) {
					asterix = true;
					if(splits[i].indexOf("*")<2) {
						alert(error);
						return false;
					}
				}
				if(splits[i].indexOf("?")>-1) {
					question = true;
					if(splits[i].indexOf("?")<2) {
						alert(error);
						return false;
					}
					
				}
				var temp = removeAsterix(splits[i]);
				temp = removeQuestionMark(temp);
				if(temp.length < 2 && (asterix || question)) {
					alert(error);
					return false;
				}			
			}
			inputField.value = inp;	
		}
	}
	return true;
}

function checkEmail(id) {
	if(document.getElementById){
		var email = document.getElementById(id);
		
		if(email == null) {
			return false;
		}
		
		var emailValue = email.value;
		
		if(emailValue == "") {
			return false;
		}
		
		if(emailValue.indexOf("@")==-1) {
			return false;
		}
	}
	
	return true;
}


function sendVCardFromDetails(phone, name){
	
	document.VCardForm.phone.value = phone;
	document.VCardForm.name.value = name;
	document.VCardForm.action.value = "add";	
	document.VCardForm.submit();
	
}

function sendSMSFromDetails(phone, name){
	
	document.SMSForm.phone.value = phone;
	document.SMSForm.name.value = name;
	document.SMSForm.action.value = "add";	
	document.SMSForm.submit();
	
}

function checkField(field) {
	if(field=="")return false;
	return true;
}
function clearText(text) {
    text.value = ""
}
function clearTextAndGiveFocus(text) {
    text.value = ""
    text.focus();
}
