<?PHP
	require_once("../includes/config.php");
	$useSiteManager = new SiteManager;
	header("Content-Type: text/javascript");
	
	if(file_exists(SERVER_PATH.'js/googleMapChooseLocationScript.js.php')) include_once(SERVER_PATH.'js/googleMapChooseLocationScript.js.php');
	
?>

document.onmousemove = getMouseCoordinates;

function getMouseCoordinates(event){
	ev = event || window.event;
	mouseX = ev.pageX;
	mouseY = ev.pageY;
}

//either shows or hides an element based on its current status
function showHideElement(elementId){
	if(document.getElementById(elementId).style.display=='none'){
		document.getElementById(elementId).style.display = '';
	}
	else{
		document.getElementById(elementId).style.display = 'none';
	}
}

var popUpWin = 0;
function popLocationSelectPage(){
	var width = 800;
	var height = 600;
	var left = 10;
	var top = 10;
	if(popUpWin){
		if(!popUpWin.closed) popUpWin.close();
	}
	if(document.getElementById("flott-lati")){
		currentLatitude = document.getElementById("flott-lati").value;
		currentLongitude = document.getElementById("flott-longi").value;
	}
	else{
		currentLatitude = document.getElementById("flott-latitude").value;
		currentLongitude = document.getElementById("flott-longitude").value;
	}
		// should be in the admin directory
	popUpWin = open('<?PHP echo SECURE_URI; ?>chooseLocationGoogle.php?latitude='+currentLatitude+'&longitude='+currentLongitude, 'popUpWin', 'toolbar=no,location=no,directories=no,status=1,menubar=no,scrollbars=1,resizable=1,copyhistory=yes,width='+width+',height='+height+',left='+left+', top='+top+',screenX='+left+',screenY='+top+'');
}

function showHideParentElement(elementId){

	if(!parent.document.getElementById(elementId)){
		return false;
	}
	if(parent.document.getElementById(elementId) && parent.document.getElementById(elementId).style.display=='none'){
		parent.document.getElementById(elementId).style.display = '';
		return true;
	}
	if(parent.document.getElementById(elementId)){
		parent.document.getElementById(elementId).style.display = 'none';
		return true;
	}
	if(opener.document.getElementById(elementId) && opener.document.getElementById(elementId).style.display=='none'){
		opener.document.getElementById(elementId).style.display = '';
		return true;
	}
	if(opener.document.getElementById(elementId)){
		opener.document.getElementById(elementId).style.display = 'none';
		return true;
	}
}

function hideElement(elementId){
	if(document.getElementById(elementId)){
		document.getElementById(elementId).style.display = 'none';
	}
}

function showElement(elementId){
	if(document.getElementById(elementId)){
		document.getElementById(elementId).style.display = '';
	}
}

function changeHTML(elementId, str){
    document.getElementById(elementId).innerHTML = str;
}

function positionItAtMouse(elementID){
	//define universal dsoc left point
	var dsocleft = document.body.scrollLeft;
	//define universal dsoc top point
	var dsoctop = document.body.scrollTop;

	//if the user is using IE 4+ or Firefox/ NS6+
	if (document.all||document.getElementById){
		if(document.getElementById(elementID)){
			document.getElementById(elementID).style.left=parseInt(mouseX)+5+"px";
			document.getElementById(elementID).style.top=mouseY+5+"px";
		}
	}
}

function xmlhttpPost(strURL, formId, updateElementId, loadingElement, doNotHide){
	if(!doNotHide){
		hideElement(updateElementId);
		showElement(loadingElement);
	}
    var xmlHttpReq = false;
    var self = this;
    // Mozilla/Safari
    if (window.XMLHttpRequest) {
        self.xmlHttpReq = new XMLHttpRequest();
    }
    // IE
    else if (window.ActiveXObject) {
        self.xmlHttpReq = new ActiveXObject("Microsoft.XMLHTTP");
    }
    self.xmlHttpReq.open('POST', strURL, true);
    self.xmlHttpReq.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
    self.xmlHttpReq.onreadystatechange = function() {
        if (self.xmlHttpReq.readyState == 4) {
            updatePageHTML(updateElementId, self.xmlHttpReq.responseText);
			if(!doNotHide){
				hideElement(loadingElement);
				showElement(updateElementId);
			}
        }
    }
    self.xmlHttpReq.send(getquerystring(formId));
}

function getquerystring(formId) {
	qstr = '';
	var obj = document.forms[formId]
	for (i=0; obj.elements[i]; i++) {
		currentElement = obj.elements[i].name;
		currentValue = obj.elements[i].value;
    	qstr = qstr + currentElement + '=' + escape(currentValue) + '&';  // NOTE: no '?' before querystring
	}
    return qstr;
}

function updatePageHTML(elementId, str){
    document.getElementById(elementId).innerHTML = str;
}

function validateString(element){
      
    stringType = element.substr(0, 4);
	if(!document.getElementById(element)){
		return false;
	}
    stringToTest = document.getElementById(element).value;
	re = /^$/;
	canBeEmpty = element.substr(4,1);
	if(canBeEmpty=='t'){
		canBeEmpty = true;
	}
	else if(canBeEmpty=='f'){
		canBeEmpty = false;
	}
	if(canBeEmpty==true && stringToTest==''){
		if(document.getElementById(element+'_valid_image')){
			document.getElementById(element+'_valid_image').src = '<?PHP echo SECURE_URI; ?>themes/<?PHP echo CURRENT_THEME; ?>/images/form_valid.gif';
		}
		return true;
	}
<?PHP
		foreach($FormFieldTypes as $type => $details){
			echo "if(stringType=='".$type."'){re = ".$FormFieldTypes[$type]["regex"].";}\n";
		}
?>
	goodString = false;

	goodString = re.test(stringToTest);
	if(goodString){
		if(document.getElementById(element+'_valid_image')){
			document.getElementById(element+'_valid_image').src = '<?PHP echo SECURE_URI; ?>themes/<?PHP echo CURRENT_THEME; ?>/images/form_valid.gif';
		}
		return true;
	}
	else{
		if(document.getElementById(element+'_valid_image')){
			document.getElementById(element+'_valid_image').src = '<?PHP echo SECURE_URI; ?>themes/<?PHP echo CURRENT_THEME; ?>/images/form_not_valid.gif';
		}
		return false;
	}
}

function validateDescription(stringType){
<?PHP
		foreach($FormFieldTypes as $type => $details){
			echo "if(stringType=='".$type."'){return '".str_replace("'", "\\'", $FormFieldTypes[$type]["descr"])."';}\n";
			//echo "if(stringType=='".$type."'){return 'There is an error in your submission.  Please check the indicated field for problems and try again.';}\n";
		}
?>
	return ''; // no matches
}

function validateForm(formName){
      
	var obj = document.forms[formName]
	deleting = false;
	delre = /delete/;  //regular expression for delete check box
	if(!obj){
	  	alert('Form "' + formName + '" could not be found.');
		return false;
	}
	  
      for (i=0; obj.elements[i]; i++) {
	  		
			if(obj.elements[i].name){
				currentElement = obj.elements[i].name;
				currentValue = obj.elements[i].value;
				isValid = true;
				
				if(delre.test(currentElement)){
					  if(obj.elements[i].checked==true) deleting = true;
				}

				if(currentElement.substr(4,2)=='t-' || currentElement.substr(4,2)=='f-'){

					  stringType = currentElement.substr(0,4);
					  canBeEmpty = currentElement.substr(4,1);
					  
					  if(canBeEmpty=='t'){
							canBeEmpty = true;
							canBeEmptyDescription = 'You can leave this field empty.';
					  }
					  else if(canBeEmpty=='f'){
							canBeEmpty = false;
							canBeEmptyDescription = 'You can NOT leave this field empty.';
					  }
					  if(canBeEmpty && document.getElementById(currentElement).value=='') isValid = true;
					  else isValid = validateString(currentElement);
				}
				
				if(!isValid){
					  alert(validateDescription(stringType) + '\n' + canBeEmptyDescription + '\nYou will need to fix this before continuing. ');
					  obj.elements[i].focus();
					  obj.elements[i].style.borderColor='#FF0000';
					  return false;
					  break;
				}
				else{
					  obj.elements[i].style.borderColor='';
				}
			}
      }
      
      if(deleting==true){
            return confirm('You have objects selected for deletion.\n This cannot be undone!\n Are you sure you wish to continue?');
      }
      return true;
}

function formatPhoneNumber(elementID){
	if(document.getElementById(elementID)){
		number_final = '';
		number = document.getElementById(elementID).value;
		for(i=0; i<number.length; i++){
			temp_number = number.substr(i, 1);
			if(isNumber(temp_number)){
				number_final = number_final + temp_number;
			}
		}
		if(number_final.length>7){
			document.getElementById(elementID).value = '(' + number_final.substr(0, 3) + ') ' + number_final.substr(3, 3) + '-' + number_final.substr(6, 4);
		}
	}
}

function roundFloat(floatNum,dec){
	floatNum = parseFloat(floatNum);
    return floatNum.toFixed(dec);
}

function isNumber(number){
    re = /^[0-9\.]+$/;
    return re.test(number);
}

function windowWidth(){
	var myWidth = 0;
	if(typeof(window.innerWidth)=='number'){
		//Non-IE
		myWidth = window.innerWidth;
	}
	else if(document.documentElement && document.documentElement.clientWidth){
		//IE 6+ in 'standards compliant mode'
		myWidth = document.documentElement.clientWidth;
	}
	else if(document.body && document.body.clientWidth){
		//IE 4 compatible
		myWidth = document.body.clientWidth;
	}
	return myWidth;
}

function windowHeight(){
	var myHeight = 0;
	if(typeof(window.innerHeight)=='number'){
		//Non-IE
		myHeight = window.innerHeight;
	}
	else if(document.documentElement && document.documentElement.clientHeight){
		//IE 6+ in 'standards compliant mode'
		myHeight = document.documentElement.clientHeight;
	}
	else if(document.body && document.body.clientHeight){
		//IE 4 compatible
		myHeight = document.body.clientHeight;
	}
	return myHeight;
}

function setElementSize(elementID, newWidth, newHeight, maximizeWidth, maximizeHeight) {
	if(maximizeWidth){
		newWidth = windowWidth()-25;
	}
	if(maximizeHeight){
		newHeight = windowHeight()-100;
	}
	if(newWidth){
		document.getElementById(elementID).width = newWidth;
	}
	if(newHeight){
		document.getElementById(elementID).height = newHeight;
	}
}

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];}
}



