
/** Author: Daniel Stephenson // Jumpstart Design
  *  Date: --/--/2008
  *  Filename: jsFuncs.js
  *  Function: various js functions for design/functionality
  *  History: 
*/

// Popups (spam spam spam!)

function launchPopup(url, name, w, h)
{
	window.open(url,name,'menubar=no,titlebar=no,resizable=yes,menubar=no,location=no,scrollbars=yes,width='+w+',height='+h+',toolbar=no');	
}

// create a cookie..  usage: createCookie('name','value',1);

function createCookie(name,value,days) {
	if (days) {
		var date = new Date();
		date.setTime(date.getTime()+(days*24*60*60*1000));
		var expires = "; expires="+date.toGMTString();
	}
	else var expires = "";
	document.cookie = name+"="+value+expires+"; path=/";
}

function createCookieHrs(name,value,hours) {
	if (hours) {
		var date = new Date();
		date.setTime(date.getTime()+(hours*60*60*1000));
		var expires = "; expires="+date.toGMTString();
	}
	else var expires = "";
	document.cookie = name+"="+value+expires+"; path=/";
}

function readCookie(name) {
	var nameEQ = name + "=";
	var ca = document.cookie.split(';');
	for(var i=0;i < ca.length;i++) {
		var c = ca[i];
		while (c.charAt(0)==' ') c = c.substring(1,c.length);
		if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
	}
	return null;
}


function eraseCookie(name) {
	createCookie(name,"",-1);
}


// check textbox is numbers only..  usage: onkeypress="return isNumberKey(event)"

function isNumberKey(evt)
{
	var charCode = (evt.which) ? evt.which : event.keyCode
	if (charCode > 31 && (charCode < 48 || charCode > 57)){
		return false;	
	}
	return true;
}


// check textbox is empty (true=yes,false=no)

function isEmpty( newString ) {
	if ( newString.length == 0  || newString == "" || newString == null || newString.charAt(0) == ' ') {
		return true;
	}
	else { return false; }
}

// allow only certain types of data into text box

var letters=' ABCÇDEFGHIJKLMNÑOPQRSTUVWXYZabcçdefghijklmnñopqrstuvwxyzàáÀÁéèÈÉíìÍÌïÏóòÓÒúùÚÙüÜ';
var numbers='1234567890';
var signs=',.:;@-\'';
var mathsigns='+-=()*/';
var custom='<>#$%&?¿';

function alpha(e,allow) {
var k;
k=document.all?parseInt(e.keyCode): parseInt(e.which);
return (allow.indexOf(String.fromCharCode(k))!=-1);
}

function stripSpecialChars( newString ) {
     newString=filterNum(newString);
	 return newString;

     function filterNum(str) {
          re = /\$|,|@|#|~|`|\%|\*|\^|\&|\(|\)|\+|\=|\[|\-|\_|\]|\[|\}|\{|\;|\:|\'|\"|\<|\>|\?|\||\\|\!|\$|\./g;
          // remove special characters like "$" and "," etc...
          return str.replace(re, "");
     }
}


function checkSpecialChars( newString )
{
   var iChars = "!@#$%^&*()+=-[]\\\';,./{}|\":<>?";

   for (var i = 0; i < newString.length; i++) {
  	  if (iChars.indexOf(newString.charAt(i)) != -1) {
  	     return false;
      }
   }
   
   return true;
}


function changeInnerHTML( element, html )
{
   document.getElementById( element ).innerHTML = html;
}

function trim(stringToTrim)
{
	return stringToTrim.replace(/^\s+|\s+$/g,"");
}

function ltrim(stringToTrim)
{
   return stringToTrim.replace(/^\s+/,"");
}

function rtrim(stringToTrim)
{
   return stringToTrim.replace(/\s+$/,"");
}

function hideLayer( id1 )
{
   var layer1 = document.getElementById( id1 );     //  current layer
   layer1.style.display = 'none';
}


function showLayer( id1 )
{
   var layer1 = document.getElementById( id1 );     //  current layer
   layer1.style.display = 'block';
}


function toggleLayer( id1 )
{
   var layer1 = document.getElementById( id1 );     //  current layer
	
   if(layer1.style.display == 'block') {
      layer1.style.display = 'none';
   } else {
      layer1.style.display = 'block';
   }
}


function toggle2Layers( id1, id2 )
{
   var layer1 = document.getElementById( id1 );     //  current layer
   var layer2 = document.getElementById( id2 );     //  new layer

   if(layer1.style.display == 'none') {
      layer1.style.display = 'block';
      layer2.style.display = 'none';
   } else {
      layer1.style.display = 'none';
      layer2.style.display = 'block';
   }
}

function toggle2Layers( id1, id2 )
{
   var layer1 = document.getElementById( id1 );     //  current layer
   var layer2 = document.getElementById( id2 );     //  new layer

   if(layer1.style.display == 'none') {
      layer1.style.display = 'block';
      layer2.style.display = 'none';
   } else {
      layer1.style.display = 'none';
      layer2.style.display = 'block';
   }

}

function toggleVisibility( id1 )
{
   var layer1 = document.getElementById( id1 );     //  current layer
	
   if(layer1.style.visibility == "hidden") {
      layer1.style.visibility = "visible";
   } else {
      layer1.style.visibility = "hidden";
   }
}

function toggle2Visibility( id1, id2 )
{
   var layer1 = document.getElementById( id1 );     //  current layer
   var layer2 = document.getElementById( id2 );     //  new layer

   if(layer1.style.display == 'none') {
      layer1.style.visibility = "visible";
      layer2.style.visibility = "hidden";
   } else {
      layer1.style.visibility = "hidden";
      layer2.style.visibility = "visible";
   }

}

function getElementHeight(Elem) {
	if (ns4) {
		var elem = getObjNN4(document, Elem);
		return elem.clip.height;
	} else {
		if(document.getElementById) {
			var elem = document.getElementById(Elem);
		} else if (document.all){
			var elem = document.all[Elem];
		}
		if (op5) { 
			xPos = elem.style.pixelHeight;
		} else {
			xPos = elem.offsetHeight;
		}
		return xPos;
	} 
}

function getElementWidth(Elem) {
	if (ns4) {
		var elem = getObjNN4(document, Elem);
		return elem.clip.width;
	} else {
		if(document.getElementById) {
			var elem = document.getElementById(Elem);
		} else if (document.all){
			var elem = document.all[Elem];
		}
		if (op5) {
			xPos = elem.style.pixelWidth;
		} else {
			xPos = elem.offsetWidth;
		}
		return xPos;
	}
}

