/************************************************************
 * Copyright 2006, Swirl Mobile, http://www.iswirl.com 
 * Common JavaScript functions
 ************************************************************/
 
var whitespace = " \t\n\r";

function isEmail(field) {
	var regexp = /^[_a-zA-Z0-9-]+(\.[_a-zA-Z0-9-]+)*@[a-zA-Z0-9-]+(\.[a-zA-Z0-9-]+)*(\.[a-zA-Z]{2,3})$/;
	return field.value.match(regexp);	
}

function openWindow(theURL,winName,features) { 
  window.open(theURL,winName,features);
}

function getCookie( name ) {
	var start = document.cookie.indexOf( name + "=" );
	var len = start + name.length + 1;
	if ( ( !start ) && ( name != document.cookie.substring( 0, name.length ) ) ) {
		return null;
	}
	if ( start == -1 ) return null;
	var end = document.cookie.indexOf( ';', len );
	if ( end == -1 ) end = document.cookie.length;
	return unescape( document.cookie.substring( len, end ) );
}

function setCookie( name, value, expires, path, domain, secure ) {
	var today = new Date();
	today.setTime( today.getTime() );
	if ( expires ) {
		expires = expires * 1000 * 60 * 60 * 24;
	}
	var expires_date = new Date( today.getTime() + (expires) );
	document.cookie = name+'='+escape( value ) +
		( ( expires ) ? ';expires='+expires_date.toGMTString() : '' ) + //expires.toGMTString()
		( ( path ) ? ';path=' + path : '' ) +
		( ( domain ) ? ';domain=' + domain : '' ) +
		( ( secure ) ? ';secure' : '' );
}

function deleteCookie( name, path, domain ) {
	if ( getCookie( name ) ) document.cookie = name + '=' +
			( ( path ) ? ';path=' + path : '') +
			( ( domain ) ? ';domain=' + domain : '' ) +
			';expires=Thu, 01-Jan-1970 00:00:01 GMT';
}

function trim(str) {
	return str.replace(/^\s+|\s+$/g, '')
}

function isSelectEmpty(field) {
	if(field.options[field.selectedIndex].value == "999") {		
		return true;
	}
	return false;
}

function isEmpty(s) {
	if(s == null) {
		return true;	
	}
	s = trim(s);
	return s.length == 0;
}

function isUsZip(s) {
	if (s.length != 5 && s.length != 10 && s.length !=9)
		return false;
	for (var i=0; i < s.length; i++) {
		if ((s.charAt(i) < '0' || s.charAt(s) > '9') && s.charAt(i) != '-') {
			return false;
		}
	}
	return true;
}

function isTelNo(t) {
	var telno = /^\+?[0-9 ()-]+[0-9]$/;
	if(!checkRegExp(t, telno)) {
		return false;			   
	}	
  	var numdigits = 0;
  	for (var j=0; j<t.length; j++) {
    	if (t.charAt(j)>='0' && t.charAt(j)<='9') numdigits++;  
  	}
  	if (numdigits > 14 || numdigits < 9) {
    	return false;
  	}
  return true;
}

function checkRegExp(value, regexp) {
	var matchedChars = value.match(regexp);
	if(matchedChars == null) {
		//assume the regexp submitted represents a good value
		return false;	
	}
	return true;
} 

function $() {
	var elements = new Array();
	for (var i = 0; i < arguments.length; i++) {
		var element = arguments[i];
		if (typeof element == 'string')
			element = document.getElementById(element);
		if (arguments.length == 1)
			return element;
		elements.push(element);
	}
	return elements;
}

/*
    Written by Jonathan Snook, http://www.snook.ca/jonathan
    Add-ons by Robert Nyman, http://www.robertnyman.com
	
	Get all a elements in the document with the "info-links" class: getElementsByClassName(document, "a", "info-links");
	Get all divs within the element named "container", with a "col" class: getElementsByClassName(document.getElementById("container"), "div", "col"); 
	Get all elements within in the document with a "click-me" class:  getElementsByClassName(document, "*", "click-me"); 
*/
function getElementsByClassName(oElm, strTagName, strClassName){
    var arrElements = (strTagName == "*" && oElm.all)? oElm.all : oElm.getElementsByTagName(strTagName);
    var arrReturnElements = new Array();
    strClassName = strClassName.replace(/\-/g, "\\-");
    var oRegExp = new RegExp("(^|\\s)" + strClassName + "(\\s|$)");
    var oElement;
    for(var i=0; i<arrElements.length; i++){
        oElement = arrElements[i];      
        if(oRegExp.test(oElement.className)){
            arrReturnElements.push(oElement);
        }   
    }
    return (arrReturnElements)
}

Array.prototype.push = function(value) {
  this[this.length] = value;                                                              
}
