/*  GENERIC FUNCTION TO FORMAT NUMBER  */

var SSNumberFormat = function( num ){
	num = '' + num;
	if( num.length > 3 ){
		var mod = num.length % 3;
		var output = (mod > 0) ? num.substring(0,mod) : '';
		for( i=0; i < Math.floor(num.length/3) ; i++ ){
			if( (mod==0) && (i==0) ){
				output += num.substring(mod+3*i,mod+3*i+3);
			}
			else{
				output += ',' + num.substring(mod+3*i,mod+3*i+3);
			}
		}
		return( output );
	}
	else{
		return( num );
	}
};

/*  END GENERIC FUNCTION TO FORMAT NUMBER  */




/*  GENERIC FUNCTION TO SELECT A PARTICULAR OPTION IN A SELECT BASED ON THE VALUE  */
var SSFormSelectElement = function( el, val ){
	var max = 0;
	if( val ){
		for( var x=0, max=el.options.length; x<max; x++ ){
			if( el.options[x].value==val ){
				el.selectedIndex = x;
				break;
			}
		}
	}
	// if no val, select the first element
	else{
		el.selectedIndex = 0;
	}
};

/*  END GENERIC FUNCTION TO SELECT A PARTICULAR OPTION IN A SELECT BASED ON THE VALUE  */




/*  GENERIC FUNCTION TO CHECK EMAIL FORMAT  */
var SSEmailAddressCheck = function( str ){
	var at  ="@";
	var dot = ".";
	var lat = str.indexOf(at);
	var lstr = str.length;
	var ldot = str.indexOf(dot);
	if(str.indexOf(at)==-1){
		return false;
	}
	if (str.indexOf(at)==-1 || str.indexOf(at)==0 || str.indexOf(at)==lstr){
		return false;
	}
	if (str.indexOf(dot)==-1 || str.indexOf(dot)==0 || str.indexOf(dot)==lstr){
		return false;
	}
	if (str.indexOf(at,(lat+1))!=-1){
		return false;
	}
	if (str.substring(lat-1,lat)==dot || str.substring(lat+1,lat+2)==dot){
		return false;
	}
	if (str.indexOf(dot,(lat+2))==-1){
		return false;
	}
	if (str.indexOf(" ")!=-1){
		return false;
	}
	return true;				
}
/*  END GENERIC FUNCTION TO CHECK EMAIL FORMAT  */






/*  GENERIC COOKIE FUNCTIONS  */
/*
   name - name of the cookie
   value - value of the cookie
   [expires] - expiration date of the cookie
     (defaults to end of current session)
   [path] - path for which the cookie is valid
     (defaults to path of calling document)
   [domain] - domain for which the cookie is valid
     (defaults to domain of calling document)
   [secure] - Boolean value indicating if the cookie transmission requires
     a secure transmission
   * an argument defaults when it is assigned null as a placeholder
   * a null placeholder is not required for trailing omitted arguments
*/
function setCookie(name, value, expires, path, domain, secure) {
	var curCookie = name + "=" + escape(value) +
		((expires) ? "; expires=" + expires.toGMTString() : "") +
		((path) ? "; path=" + path : "") +
		((domain) ? "; domain=" + domain : "") +
		((secure) ? "; secure" : "");
	document.cookie = curCookie;
}
/*
  name - name of the desired cookie
  return string containing value of specified cookie or null
  if cookie does not exist
*/
function getCookie(name) {
	var dc = document.cookie;
	var prefix = name + "=";
	var begin = dc.indexOf("; " + prefix);
	if (begin == -1) {
		begin = dc.indexOf(prefix);
		if (begin != 0){
			return null;
		}
	}
	else{
		begin += 2;
	}
	var end = document.cookie.indexOf(";", begin);
	if (end == -1){
		end = dc.length;
	}
	return unescape(dc.substring(begin + prefix.length, end));
}
/*
   name - name of the cookie
   [path] - path of the cookie (must be same as path used to create cookie)
   [domain] - domain of the cookie (must be same as domain used to
     create cookie)
   path and domain default if assigned null or omitted if no explicit
     argument proceeds
*/
function deleteCookie(name, path, domain) {
	if (getCookie(name)) {
		document.cookie = name + "=" +
		((path) ? "; path=" + path : "") +
		((domain) ? "; domain=" + domain : "") +
		"; expires=Thu, 01-Jan-70 00:00:01 GMT";
	}
}
// date - any instance of the Date object
// * hand all instances of the Date object to this function for "repairs"
function fixDate(date) {
	var base = new Date(0);
	var skew = base.getTime();
	if (skew > 0){
		date.setTime(date.getTime() - skew);
	}
}
/*  END GENERIC COOKIE FUNCTIONS  */



