// JavaScript Document

	function trim(src_str) {
		var str = src_str || '';
		str = str.replace(/^\s*/, '');
		str = str.replace(/\s*$/, '');
		return str;
	}
	function show_tooltip(eObj) {
		var doctemp = document.createDocumentFragment();
		var ttdiv = document.createElement("div");
		doctemp.appendChild(ttdiv);
		ttdiv.style.display = "none";
		ttdiv.style.position = 'absolute';
		ttdiv.style.width = '150px';
		ttdiv.style.margin = '0px';
		ttdiv.style.overflowY = 'auto';
		ttdiv.style.backgroundColor = "#FC3";
		ttdiv.style.border = '#666 thin solid';
		ttp = document.createElement("p");
		ttp.style.margin = '15px';
		ttp.style.fontFamily = 'Arial, Helvetica, sans-serif';
		ttp.style.fontSize = '11px';
		ttp.style.fontWeight = 'normal';
		ttp.style.color = '#2C3136';
		ttp.setAttribute("align", "center");
		ttp.innerHTML = $(this).attr("tooltip") || "Add tooltip attribute to the element";
		ttdiv.appendChild(ttp);
		document.body.appendChild(doctemp);
			if (eObj && eObj.clientX && eObj.clientY) {
			  ttdiv.style.top = eObj.clientY - ($(ttdiv).outerHeight() + 8 * 1) + 'px';
			  ttdiv.style.left = eObj.clientX + 8 + 'px';
			}
			else {
			  ttdiv.style.top = ($(this).offset().top - $(ttdiv).outerHeight() - 2 * 1) + 'px';
			  ttdiv.style.left = ($(this).offset().left + $(this).width() / 2) + 'px';
			}
			if ($(this).attr("tooltip_followpointer") && $(this).attr("tooltip_followpointer").toLowerCase() == 'true') {
			  $(this).mousemove(function(evtMoveObj){
			   var x = evtMoveObj.clientX;
			   var y = evtMoveObj.clientY;
			   ttdiv.style.top = y - ($(ttdiv).outerHeight() + 8 * 1) + 'px';
			   ttdiv.style.left = x + 8 + 'px';
			  });        
			}
		$(ttdiv).fadeIn("fast",null);
			if ($(this).attr("tooltip_closeon")) 
			  $(this).bind($(this).attr("tooltip_closeon"), function(){
					if (eObj.preventDefault)
					  eObj.preventDefault();
					$(ttdiv).fadeOut("fast",null);
			$(ttdiv).empty();
			  });
			else
			  $(this).blur(function(){
				$(ttdiv).fadeOut("fast",null);
				$(ttdiv).empty();
			  });
			  return false;
	}
	function getcookie(str_val) {
		str = document.cookie;
		str_inx = str.indexOf(str_val+'=');
		if (str_inx != -1) {
			str_inx += str_val.length + 1;
			str_inx_end = str.indexOf(";", str_inx);
			return unescape(str_inx_end == -1 ? str.substr(str_inx) : str.substr(str_inx, str_inx_end - str_inx));
		} else {
			return null;
		}
	}
	function get_auth_param() {
	  var user_id = getcookie('user_id') || '';
	  var sess_id = getcookie('sess_id') || '';
	  var sess_key = getcookie('sess_key') || '';
	  return 'user_id='+escape(user_id)+'&sess_id='+escape(sess_id)+'&sess_key='+escape(sess_key);

	}
	function ajax_query_get(ajax_url, ajax_wait_func, ajax_func){
		var ajax_obj = null;
		if (window.XMLHttpRequest) {
		   ajax_obj = new XMLHttpRequest();
		} else {
		  ajax_obj = new ActiveXOject("Microsoft.XMLHTTP");
		}
		if (ajax_obj == null)
		  return false;
		ajax_obj.open("GET", ajax_url, true);
		ajax_obj.onreadystatechange = function() {
			if ((ajax_obj.readyState == 4 || ajax_obj.readyState == 'complete'))
				if (ajax_func)
					ajax_func(ajax_obj.responseText, ajax_obj.status);			
		}
		if (ajax_wait_func)
			ajax_wait_func();
		ajax_obj.send(null);
	}
	function ajax_query_get_sync(ajax_url, ajax_wait_func, ajax_func){
		var ajax_obj = null;
		if (window.XMLHttpRequest) {
		   ajax_obj = new XMLHttpRequest();
		} else {
		  ajax_obj = new ActiveXOject("Microsoft.XMLHTTP");
		}
		if (ajax_obj == null)
		  return false;
		ajax_obj.open("GET", ajax_url, false);
		if (ajax_wait_func)
			ajax_wait_func();
		ajax_obj.send(null);
		if (ajax_func)
			ajax_func(ajax_obj.responseText, ajax_obj.status);
	}
	function ajax_query_post(ajax_url, ajax_str, ajax_wait_func, ajax_func){
		var ajax_obj = null;
		if (window.XMLHttpRequest) {
		   ajax_obj = new XMLHttpRequest();
		} else {
		  ajax_obj = new ActiveXOject("Microsoft.XMLHTTP");
		}
		if (ajax_obj == null)
		  return false;
		ajax_obj.open("POST", ajax_url, true);
		ajax_obj.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
		ajax_obj.onreadystatechange = function() {
			if ((ajax_obj.readyState == 4 || ajax_obj.readyState == 'complete'))
				if (ajax_func)
					ajax_func(ajax_obj.responseText, ajax_obj.status);			
		}
		if (ajax_wait_func)
			ajax_wait_func();
		ajax_obj.send(ajax_str);
	}
	function ajax_query_post_sync(ajax_url, ajax_str, ajax_wait_func, ajax_func){
		var ajax_obj = null;
		if (window.XMLHttpRequest) {
		   ajax_obj = new XMLHttpRequest();
		} else {
		  ajax_obj = new ActiveXOject("Microsoft.XMLHTTP");
		}
		if (ajax_obj == null)
		  return false;
		ajax_obj.open("POST", ajax_url, false);
		ajax_obj.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
		if (ajax_wait_func)
			ajax_wait_func();
		ajax_obj.send(ajax_str);
		if (ajax_func)
			ajax_func(ajax_obj.responseText, ajax_obj.status);
	}
	function ajax_query_get_xml(ajax_url, ajax_wait_func, ajax_func){
		var ajax_obj = null;
		if (window.XMLHttpRequest) {
		   ajax_obj = new XMLHttpRequest();
		} else {
		  ajax_obj = new ActiveXOject("Microsoft.XMLHTTP");
		}
		if (ajax_obj == null)
		  return false;
		ajax_obj.open("GET", ajax_url, true);
		ajax_obj.onreadystatechange = function() {
			if ((ajax_obj.readyState == 4 || ajax_obj.readyState == 'complete'))
				if (ajax_func)
					ajax_func(ajax_obj.responseXML, ajax_obj.status);			
		}
		if (ajax_wait_func)
			ajax_wait_func();
		ajax_obj.send(null);
	}
	function ajax_query_get_xml_sync(ajax_url, ajax_wait_func, ajax_func){
		var ajax_obj = null;
		if (window.XMLHttpRequest) {
		   ajax_obj = new XMLHttpRequest();
		} else {
		  ajax_obj = new ActiveXOject("Microsoft.XMLHTTP");
		}
		if (ajax_obj == null)
		  return false;
		ajax_obj.open("GET", ajax_url, false);
		if (ajax_wait_func)
			ajax_wait_func();
		ajax_obj.send(null);
		if (ajax_func)
			ajax_func(ajax_obj.responseXML, ajax_obj.status);
	}
	function ajax_query_post_xml(ajax_url, ajax_str, ajax_wait_func, ajax_func){
		var ajax_obj = null;
		if (window.XMLHttpRequest) {
		   ajax_obj = new XMLHttpRequest();
		} else {
		  ajax_obj = new ActiveXOject("Microsoft.XMLHTTP");
		}
		if (ajax_obj == null)
		  return false;
		ajax_obj.open("POST", ajax_url, true);
		ajax_obj.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
		ajax_obj.onreadystatechange = function() {
			if ((ajax_obj.readyState == 4 || ajax_obj.readyState == 'complete'))
				if (ajax_func)
					ajax_func(ajax_obj.responseXML, ajax_obj.status);			
		}
		if (ajax_wait_func)
			ajax_wait_func();
		ajax_obj.send(ajax_str);
	}
	function ajax_query_post_xml_sync(ajax_url, ajax_str, ajax_wait_func, ajax_func){
		var ajax_obj = null;
		if (window.XMLHttpRequest) {
		   ajax_obj = new XMLHttpRequest();
		} else {
		  ajax_obj = new ActiveXOject("Microsoft.XMLHTTP");
		}
		if (ajax_obj == null)
		  return false;
		ajax_obj.open("POST", ajax_url, false);
		ajax_obj.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
		if (ajax_wait_func)
			ajax_wait_func();
		ajax_obj.send(ajax_str);
		if (ajax_func)
			ajax_func(ajax_obj.responseXML, ajax_obj.status);
	}
	/**
	*
	*  Secure Hash Algorithm (SHA1)
	*  http://www.webtoolkit.info/
	*
	**/
	function SHA1(msg) {
	 
		function rotate_left(n,s) {
			var t4 = ( n<<s ) | (n>>>(32-s));
			return t4;
		};
	 
		function lsb_hex(val) {
			var str="";
			var i;
			var vh;
			var vl;
	 
			for( i=0; i<=6; i+=2 ) {
				vh = (val>>>(i*4+4))&0x0f;
				vl = (val>>>(i*4))&0x0f;
				str += vh.toString(16) + vl.toString(16);
			}
			return str;
		};
	 
		function cvt_hex(val) {
			var str="";
			var i;
			var v;
	 
			for( i=7; i>=0; i-- ) {
				v = (val>>>(i*4))&0x0f;
				str += v.toString(16);
			}
			return str;
		};
	 
	 
		function Utf8Encode(string) {
			string = string.replace(/\r\n/g,"\n");
			var utftext = "";
	 
			for (var n = 0; n < string.length; n++) {
	 
				var c = string.charCodeAt(n);
	 
				if (c < 128) {
					utftext += String.fromCharCode(c);
				}
				else if((c > 127) && (c < 2048)) {
					utftext += String.fromCharCode((c >> 6) | 192);
					utftext += String.fromCharCode((c & 63) | 128);
				}
				else {
					utftext += String.fromCharCode((c >> 12) | 224);
					utftext += String.fromCharCode(((c >> 6) & 63) | 128);
					utftext += String.fromCharCode((c & 63) | 128);
				}
	 
			}
	 
			return utftext;
		};
	 
		var blockstart;
		var i, j;
		var W = new Array(80);
		var H0 = 0x67452301;
		var H1 = 0xEFCDAB89;
		var H2 = 0x98BADCFE;
		var H3 = 0x10325476;
		var H4 = 0xC3D2E1F0;
		var A, B, C, D, E;
		var temp;
	 
		msg = Utf8Encode(msg);
	 
		var msg_len = msg.length;
	 
		var word_array = new Array();
		for( i=0; i<msg_len-3; i+=4 ) {
			j = msg.charCodeAt(i)<<24 | msg.charCodeAt(i+1)<<16 |
			msg.charCodeAt(i+2)<<8 | msg.charCodeAt(i+3);
			word_array.push( j );
		}
	 
		switch( msg_len % 4 ) {
			case 0:
				i = 0x080000000;
			break;
			case 1:
				i = msg.charCodeAt(msg_len-1)<<24 | 0x0800000;
			break;
	 
			case 2:
				i = msg.charCodeAt(msg_len-2)<<24 | msg.charCodeAt(msg_len-1)<<16 | 0x08000;
			break;
	 
			case 3:
				i = msg.charCodeAt(msg_len-3)<<24 | msg.charCodeAt(msg_len-2)<<16 | msg.charCodeAt(msg_len-1)<<8	| 0x80;
			break;
		}
	 
		word_array.push( i );
	 
		while( (word_array.length % 16) != 14 ) word_array.push( 0 );
	 
		word_array.push( msg_len>>>29 );
		word_array.push( (msg_len<<3)&0x0ffffffff );
	 
	 
		for ( blockstart=0; blockstart<word_array.length; blockstart+=16 ) {
	 
			for( i=0; i<16; i++ ) W[i] = word_array[blockstart+i];
			for( i=16; i<=79; i++ ) W[i] = rotate_left(W[i-3] ^ W[i-8] ^ W[i-14] ^ W[i-16], 1);
	 
			A = H0;
			B = H1;
			C = H2;
			D = H3;
			E = H4;
	 
			for( i= 0; i<=19; i++ ) {
				temp = (rotate_left(A,5) + ((B&C) | (~B&D)) + E + W[i] + 0x5A827999) & 0x0ffffffff;
				E = D;
				D = C;
				C = rotate_left(B,30);
				B = A;
				A = temp;
			}
	 
			for( i=20; i<=39; i++ ) {
				temp = (rotate_left(A,5) + (B ^ C ^ D) + E + W[i] + 0x6ED9EBA1) & 0x0ffffffff;
				E = D;
				D = C;
				C = rotate_left(B,30);
				B = A;
				A = temp;
			}
	 
			for( i=40; i<=59; i++ ) {
				temp = (rotate_left(A,5) + ((B&C) | (B&D) | (C&D)) + E + W[i] + 0x8F1BBCDC) & 0x0ffffffff;
				E = D;
				D = C;
				C = rotate_left(B,30);
				B = A;
				A = temp;
			}
	 
			for( i=60; i<=79; i++ ) {
				temp = (rotate_left(A,5) + (B ^ C ^ D) + E + W[i] + 0xCA62C1D6) & 0x0ffffffff;
				E = D;
				D = C;
				C = rotate_left(B,30);
				B = A;
				A = temp;
			}
	 
			H0 = (H0 + A) & 0x0ffffffff;
			H1 = (H1 + B) & 0x0ffffffff;
			H2 = (H2 + C) & 0x0ffffffff;
			H3 = (H3 + D) & 0x0ffffffff;
			H4 = (H4 + E) & 0x0ffffffff;
	 
		}
	 
		var temp = cvt_hex(H0) + cvt_hex(H1) + cvt_hex(H2) + cvt_hex(H3) + cvt_hex(H4);
	 
		return temp.toLowerCase();
	 
	}
	function login_wait() {
		document.getElementById('loginMsg').innerHTML = "Please Wait...";
	}
	function do_login() {
		var username = document.getElementById("txt_user").value;
		var password = document.getElementById("txt_password").value;
		if (username.length == 0 && password.length == 0) {
			document.getElementById('loginMsg').innerHTML = "Please Enter Username and Password.";
			document.getElementById('txt_user').focus();
			return false;
		}
		if (username.length == 0) {
			document.getElementById('loginMsg').innerHTML = "Please Enter Username.";
			document.getElementById('txt_user').focus();
			return false;
		}
		if (password.length == 0) {
			document.getElementById('loginMsg').innerHTML = "Please Enter Password.";
			document.getElementById('txt_password').focus();
			return false;
		}
		if (username.search(/\s/) != -1 || password.search(/\s/) != -1) {
			document.getElementById('loginMsg').innerHTML = "Username and Password must not contain spaces.";
			if (username.search(/\s/) != -1) {
				document.getElementById('txt_user').focus();
				return false;
			}
			if (password.search(/\s/) != -1) {
				document.getElementById('txt_password').focus();
				return false;
			}
		}
		login_wait();
		password = SHA1(password);
		var q_url = 'apps/login.php?id='+escape(username)+'&key='+escape(password);
		ajax_query_get(q_url, null, login_process);
	}
	function login_process(sess_str, ret_val) {
		var username = document.getElementById("txt_user").value;
		if (sess_str.length == 73) {
			var sess = new Array();
			document.getElementById('loginMsg').innerHTML = "Logging In.";
			sess = sess_str.split(" ");
			document.cookie = 'sess_id='+escape(sess[0])+';path=/;';
			document.cookie = 'sess_key='+escape(sess[1])+';path=/;';
			document.cookie = 'user_id='+escape(username)+';path=/;';
			if (getcookie('last_page')) {
				window.location.href = getcookie('last_page');
			} else {
				window.location.href = 'main.php';
			}
		} else {
			document.getElementById('loginMsg').innerHTML = "Invalid Username or Password.";
		}
	}
	function do_login_header() {
		var username = document.getElementById('txt_user_header').value;
		var password = document.getElementById('txt_password_header').value;
		if (username.length == 0 && password.length == 0) {
			return false;
		}
		if (username.length == 0) { 
			return false;
		}
		if (password.length == 0) {
			return false;
		}
		if (username.search(/\s/) != -1 || password.search(/\s/) != -1) {
			if (username.search(/\s/) != -1) {
				return false;
			}
			if (password.search(/\s/) != -1) {
				return false;
			}
		}
		password = SHA1(password);
		var q_url = 'apps/login.php?id='+escape(username)+'&key='+escape(password);
		ajax_query_get(q_url, null, login_process_header);
	}
	function login_process_header(sess_str, ret_val) {
		var username = document.getElementById("txt_user_header").value;
		if (sess_str.length == 73) {
			var sess = new Array();
			sess = sess_str.split(" ");
			document.cookie = 'sess_id='+escape(sess[0])+';path=/;';
			document.cookie = 'sess_key='+escape(sess[1])+';path=/;';
			document.cookie = 'user_id='+escape(username)+';path=/;';
			if (getcookie('last_page')) {
				window.location.href = getcookie('last_page');
			} else {
				window.location.href = 'main.php';
			}
		}
	}
	function showhide(targetID) {
		//change target element mode
		var elementmode = document.getElementById(targetID).style;
		elementmode.display = (!elementmode.display) ? 'none' : '';
	}
	function changetext(changee,oldText,newText) {
		//changes text in source element
		var elementToChange = document.getElementById(changee);
		elementToChange.innerHTML = (elementToChange.innerHTML == oldText) ? newText : oldText;
	}
	function workforchange(targetID,sourceID,oldContent,newContent) {
		showhide(targetID);
		changetext(sourceID,oldContent,newContent);
	}
	// Cruft note: The content of "oldContent," the third argument of the
	// workforchange() function, must match the existing content of the changer text.
	function MM_swapImgRestore() { //v3.0
		var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
	}
	function MM_preloadImages() { //v3.0
		var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
		var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
		if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
	}
	function MM_findObj(n, d) { //v4.01
		var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
		d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
		if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
		for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
		if(!x && d.getElementById) x=d.getElementById(n); return x;
	}
	function MM_swapImage() { //v3.0
		var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
		if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
	}
	function validateForm(f) {
		/*
		if (f.CompanyName.value.length == 0) {
			document.getElementById("message").innerHTML = "Please enter a valid Name";
			return false;
		}
		*/
		if (f.Phone.value.length == 0) {
			document.getElementById("message").innerHTML = "Please enter a valid Phone Number";
			return false;
		}
		if (f.Email.value.length == 0 || f.Email.value.indexOf("@") < 0 || f.Email.value.indexOf(".") < 0) {
			document.getElementById("message").innerHTML = "Please enter a valid Email Address";
			return false;
		}
	}
	//-- author: ZCastro -------------------------------------------------------------------------------
	function createRequester(){
		var requester = false;
		try {
			var requester = new XMLHttpRequest();
		} catch(error) {
			try {
				var requester = new ActiveXObject("Microsoft.XMLHTTP");
			} catch(error) {
				return false;
			}
		}
		return requester;
	}
	var verifyDuplicatePhone = createRequester();
	function isDuplicatePhone() {
		if (document.getElementById('Phone').value != '') {
			if (verifyDuplicatePhone) {
		
				var phone = document.getElementById('Phone').value;
		
				var request = "phone="+phone;
		
				verifyDuplicatePhone.open('POST', 'http://216.160.205.135/crmV2/remote/verifyPhoneNumber.php?'+request);
				//verifyDuplicatePhone.open('POST', 'http://localhost/crmV2/remote/verifyPhoneNumber.php?'+request);
				//verifyDuplicatePhone.open('POST', 'http://10.1.1.26/crmV2/remote/verifyPhoneNumber.php?'+request);
				verifyDuplicatePhone.setRequestHeader('Content-Type','application/x-www-form-urlencoded; charset=UTF-8');
				verifyDuplicatePhone.send(request);
				verifyDuplicatePhone.onreadystatechange = function() {
					if(verifyDuplicatePhone.readyState == 4 && verifyDuplicatePhone.status == 200) {
						
						var result = verifyDuplicatePhone.responseText;
						var row = result.split("\n");
		
						for(i=0; i<row.length; i++) {
							var col = row[i].split("|");
							
							if (col[0] == 2) {
								document.getElementById('Phone').value = '';
								document.getElementById('message').innerHTML = col[1];
							}						
						} // end for
					}
				} // end function
			}
		}
	}
	function isPhone(e) {
		/*
		*  eg. 480 962 0344
		*
		*  8         backspace
		*  9         tab
		*  32        space
		*  37        arrow left
		*  39        arrow right
		*  48-57     0-1
		*/
		var charCode = e.which ? e.which : e.keyCode;
		if (charCode != 8 && charCode != 9 && charCode != 37 && charCode != 39 && (charCode < 48 || charCode > 57)) {
			document.getElementById('message').innerHTML = 'Invalid character.';
			return false;
		} else {
			document.getElementById('message').innerHTML = '';
			return true;
		}
	}
