/*
	Write Flash Object Into Divs
		Example:
			<div id="services-menu"></div>
			<script language="javascript">writeFlash('services-menu','services-flash','services-menu.swf','239','127','window','#FFFFFF');</script>
		// PARAMETER NOTES: wmode and bgcolor are not required
*/
function writeFlash(holderId,id,file,width,height,wmode,bgcolor) {
	var objectvar="<object classid='clsid:d27cdb6e-ae6d-11cf-96b8-444553540000' codebase='http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=8,0,0,0' width='"+width+"' height='"+height+"' id='"+id+"' align='middle'><param name='allowScriptAccess' value='sameDomain' /><param name='movie' value='"+file+"' /><param name='loop' value='false' /><param name='menu' value='false' /><param name='quality' value='high' />";
	if(bgcolor!=null){
		objectvar+="<param name='bgcolor' value='"+bgcolor+"' />";
		var embedbgcolor="bgcolor='"+bgcolor+"'";
	}
	if(wmode==null){
		wmode='transparent';	
	}
	objectvar+="<param name='wmode' value='"+wmode+"' /><embed src='"+file+"' loop='false' menu='false' quality='high' wmode='"+wmode+"' "+embedbgcolor+" width='"+width+"' height='"+height+"' id='"+id+"' align='middle' allowScriptAccess='sameDomain' type='application/x-shockwave-flash' pluginspage='http://www.macromedia.com/go/getflashplayer' /></object>";
	document.getElementById(holderId).innerHTML = objectvar;
} 

function get(elName){
	if(document.getElementById){
		if(temp=document.getElementById(elName)){
			return temp;
		}
		else{
			return false;
		}
	}
}
function clearGoogle(e,el){
	if(e=="in"){
		if(el.value=="Search gsofct.org"){
			el.value="";
		}
	}
	else{
		if(el.value==""){
			el.value="Search gsofct.org";
		}
	}
}
String.prototype.trim=function(){
	a = this.replace(/^\s+/, '');
	return a.replace(/\s+$/, '');
};
String.prototype.reverse=function(){
	var newStr="";
	for (i=0;i<=this.length;i++){
		newStr = this.charAt(i) + newStr;
	}
	return newStr;
}
String.prototype.replaceAll=function(needle,replacement){
	string=this;
	while(string.indexOf(needle)!=-1){
		string=string.replace(needle," ");
	}
	return string;
}	
String.prototype.toProperCase=function(){
	return this.toLowerCase().replace(/^(.)|\s(.)/g,function($1){return $1.toUpperCase();});
};
document.getElementsByClassName=function(clsName,names){
	if(typeof(clsName)=="string"){
		var retVal=new Array();
		var elements=document.getElementsByTagName("*");
		for(i=0;i<elements.length;i++){
			if(names){
				if(elements[i].className.indexOf(" ")>=0){
					var classes=elements[i].className.split(" ");
					for(var j=0;j<classes.length;j++){
						if(classes[j]==clsName){
							retVal.push(elements[i].id);
						}
					}
				}
				else if(elements[i].className==clsName){
					retVal.push(elements[i].id);
				}
			}
			else{
				if(elements[i].className.indexOf(" ")>=0){
					var classes=elements[i].className.split(" ");
					for(var j= 0;j < classes.length;j++){
						if(classes[j]==clsName){
							retVal.push(elements[i]);
						}
					}
				}
				else if(elements[i].className==clsName){
					retVal.push(elements[i]);
				}	
			}
		}
		return retVal;
	}
	else{
		throw new Error("document.getElementsByClassName() must be passed a string representation of a class name");	
	}
};
document.getElementsByAttribute=function(attribute,names){
	if(typeof(attribute)=="string"){
		var retVal = new Array();
		var elements = document.getElementsByTagName("*");
		for(i = 0;i < elements.length;i++){
			if(names==false){
				if(elements[i].getAttribute(attribute)){
					retVal.push(elements[i].id+":"+elements[i].getAttribute(attribute));
				}
			}
			else{
				if(elements[i].getAttribute(attribute)){
					retVal.push(elements[i].id)
				}
			}
		}
		return retVal;
	}
	else{
		throw new Error("document.getElementsByAttribute() must be passed a string representation of an attribute name");	
	}
};
Array.prototype.inArray = function (value,caseSensitive){
	for (i=0;i<this.length;i++) {
		if(!caseSensitive){
			if(this[i].toLowerCase()==value.toLowerCase()){
				return true;
			}
		}
		else{
			if(this[i]==value){
				return true;
			}
		}
	}
	return false;
};
function enforceNumeric(field,e,next,len,allowed){
	if(next && len){
		tab=true;
	}
	char=e.charCode?e.charCode:e.keyCode;
	if (char!=8&&char!=46){
		if (char<48||char>57){
			if(allowed&&allowed.length>0){
				for(i=0;i<allowed.length;i++){
					if(allowed.inArray(char)){
						if(tab===true){
							autoTab();	
						}
						return true;
					}
					else{
						return false;	
					}
				}
			}
			else{
				return false;	
			}
		}
		else{
			if(tab===true){
				autoTab();	
			}
			return true;
		}
	}
	else if(char==46){
		if(field.value.indexOf(".")==-1){
			if(tab===true){
				autoTab();	
			}
			return true;
		}
		else{
			return false;	
		}
	}
	
	function autoTab(){
		if(field.value.length==(len-1)){
			next.focus();
		}
	}
}

function enforceAlphaNumeric(field,e){
	char=e.charCode?e.charCode:e.keyCode;
	if((char>=48&&char<=57)||(char>=65&&char<=90)||(char>=97&&char<=122)){
		return true;
	}
	else{
		return false;	
	}
}

function rgbToHex(value){
	if (typeof(value)!=="string") {
		return false;
	}
	var result=value.match(/^\s*rgb\s*\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*/);
	if(result==null){ 
		return value; 
	}
	var rgb = +result[1] << 16 | +result[2] << 8 | +result[3];
	var hex="";
	var digits="0123456789ABCDEF";
	while(rgb!=0){ 
		hex=digits.charAt(rgb&0xf); 
		rgb >>>= 4; 
	} 
	while(hex.length<6){ 
		hex='0'+hex; 
	}
	return "#" + hex;
}

function setUp(c,msoverClass,ext){
	var a=new Array();
	a=document.getElementsByClassName(c);
	for(i=0; i<a.length; i++){
		a[i]['onmouseover']=function(){this.className=msoverClass;};
		a[i]['onmouseout']=function(){this.className=c;};
		if(ext.length>0){
			a[i].onclick=function(){document.location.href=this.id+"."+ext;};	
		}
		else{
			a[i].onclick=function(){document.location.href=this.id+".php";};	
		}
	}
	
}