var objID;
function navOv(obj) {
if (obj.className!=="tdOn") {
	obj.className = "tdOv";
}
}
function navOut(obj) {
if (obj.className!=="tdOn") {
	obj.className = "";
}
}
function getURL(obj) {
var sURL = obj.getAttribute("URL");
if (sURL!=="") {
	document.location = sURL;
}
}
function popURL(obj) {
var sURL = obj.getAttribute("URL");
if (sURL!=="") {
	window.open(sURL, "", "", "");
}
}

// remove leading whitespace
String.prototype.lTrim = function () {
	return this.replace(/^\s*/, "");
}
// remove trailing whitespace
String.prototype.rTrim = function () {
	return this.replace(/\s*$/, "");
}
// remove leading and trailing whitespace
String.prototype.trim = function () {
	return this.rTrim().lTrim();
}
// removes unwanted characters from a string
String.prototype.clean = function() {
	strQuote = /'/g;
	strDQuote= /"/g;
	strLT=/</g;
	strGT=/>/g;
	myString = this.replace(strQuote, "’");			// Single Quote
	myString = myString.replace(strDQuote, "’");	// Double Quote
	myString = myString.replace(strLT, "[");		// lt HTML
	myString = myString.replace(strGT, "]");		// gt HTML
	myString = myString.trim();
	return myString;
}
function PadLeft(String,Length,PadChar) {
	String += ""       // Force argument to string.
	Length += ""       // Force argument to string.
	PadChar += ""      // Force argument to string.
	if((PadChar == "") || (!(PadChar.length == 1)))
	PadChar = " "
	var Count = 0
	var PadLength = 0
	Length = parseInt(0 + Length,10)
	if(Length <= String.length) // No padding necessary.
	return(String)
	PadLength = Length - String.length
	for(Count = 0; Count < PadLength; Count++)
	String = PadChar + String
	return(String)
}
function FormatNumber(Number,Decimals,Separator) {
	Number += ""          // Force argument to string.
	Decimals += ""        // Force argument to string.
	Separator += ""       // Force argument to string.
	if((Separator == "") || (Separator.length > 1))
	Separator = "."
	if(Number.length == 0)
	Number = "0"
	var OriginalNumber = Number  // Save for number too large.
	var Sign = 1
	var Pad = ""
	var Count = 0
	// If no number passed, force number to 0.
	if(parseFloat(Number)){
	Number = parseFloat(Number)} else {
	Number = 0}
	// If no decimals passed, clisting decimals to 2.
	if((parseInt(Decimals,10)) || (parseInt(Decimals,10) == 0)){
	Decimals = parseInt(Decimals,10)} else {
	Decimals = 2}
	if(Number < 0)
	{
	Sign = -1         // Remember sign of Number.
	Number *= Sign    // Force absolute value of Number.
	}
	if(Decimals < 0)
	Decimals *= -1    // Force absolute value of Decimals.
	// Next, convert number to rounded integer and force to string value.
	// (Number contains 1 extra digit used to force rounding)
	Number = "" + Math.floor(Number * Math.pow(10,Decimals + 1) + 5)
	if((Number.substring(1,2) == '.')||((Number + '')=='NaN'))
	return(OriginalNumber) // Number too large to format as specified.
	// If length of Number is less than number of decimals requested +1,
	// pad with zeros to requested length.
	if(Number.length < Decimals +1) // Construct pad string.
	{
	for(Count = Number.length; Count <= Decimals; Count++)
	Pad += "0"
	}
	Number = Pad + Number // Pad number as needed.
	if(Decimals == 0){
	// Drop extra digit -- Decimal portion is formatted.
	Number = Number.substring(0, Number.length -1)} else {
	// Or, format number with decimal point and drop extra decimal digit.
	Number = Number.substring(0,Number.length - Decimals -1) +
		  Separator +
		  Number.substring(Number.length - Decimals -1,
		  Number.length -1)}
	if((Number == "") || (parseFloat(Number) < 1))
	Number="0"+Number // Force leading 0 for |Number| less than 1.
	if(Sign == -1)
	Number = "-" + Number  // Set sign of number.
	return(Number)
}
function FormatNumberField(Object,Decimals,Pad,Separator,PadChar) {
	if(Object.value == "")
	Object.value = "0"
	if(Object == null)
	return(null)
	Separator += ""      // Force argument to string.
	if((Separator == "") || (Separator.length > 1))
	Separator = "."
	PadChar += ""
	if((PadChar == "") || (!(PadChar.length == 1)))
	PadChar = " "
	Object.value = FormatNumber(Object.value,Decimals,Separator)
	Object.value = PadLeft(Object.value,Pad,PadChar)
	return(Object.value)
}
function makeNumber(obj) { //Simple Number without Decimals
	obj.value = obj.value.replace(/ /g, ""); //Remove space
	obj.value = obj.value.replace(/-/g, ""); //Remove dash
	obj.value = obj.value.replace(/\(/g, ""); //Remove parenthesis
	obj.value = obj.value.replace(/\)/g, ""); //Remove parenthesis
	obj.value = obj.value.replace(/\+/g, ""); //Remove plus
	obj.value = FormatNumberField(obj,0,"","",""); //Validate
}
function makeFloat(obj) { //Numeric/Currency with Decimals
	obj.value = obj.value.replace(/ /g, ""); //Remove space
	obj.value = obj.value.replace(/-/g, ""); //Remove dash
	obj.value = obj.value.replace(/,/g, "."); //Replace comma with period;
	obj.value = FormatNumberField(obj,2,"",".","");
}
function makePercent(obj) { //Percentage with Decimals if applicable
	obj.value = obj.value.replace(/,/g, "."); //Replace comma with period;
	var pVal = FormatNumberField(obj,2,"",".","");
	if (pVal>100) { //Reset to 100
		pVal = 100;
	}
	if (pVal<0) { //Reset to 0
		pVal = 0;
	}
	obj.value = pVal*1; //Remove trailing 00
}
function cleanThis(targ) {
	targ.value = targ.value.clean();
}
function EBI(objID) {
	if (document.getElementById(objID)) {
		return document.getElementById(objID);
	} else {
		return false;
	}
}
// check whether field has a value
function isPopulated(src) {
	if (src) {
		var srcVal = src.value;
		srcVal = srcVal.trim();
		if (srcVal.length == 0) {
			return false;
		} else {
			return true;
		}
	}
}
// validate email address
function ValidateEmail(src) {
	var emailReg = /^([a-zA-Z0-9_\-\.\+]+)@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.)|(([a-zA-Z0-9\-]+\.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\]?)$/
	return emailReg.test(src);
}
// validate email address extension
function ValidateEmailEx(src) {
	var emailReg = /^[\w\.\+\-]+@\w+([-.]\w+)*\.\w+([-.]\w+)*$/;
	
	return emailReg.test(src);
}

function ValidateAlphaNumeric(src) {
	var alphaReg = /[^a-zA-Z0-9]/g
	return !alphaReg.test(src);
}
// Create xmlHttp Object for function: XMLHttp(formFields, strUrl, httpGET)
function GetXmlHttpObject() {
	var xmlHttp;
	if (!window.XMLHttpRequest) {
		try { xmlHttp = new ActiveXObject("Msxml2.XMLHTTP.4.0"); return xmlHttp; } catch (ex) {}
		try { xmlHttp = new ActiveXObject("MSXML2.XMLHTTP"); return xmlHttp; } catch (ex){}
		try { xmlHttp = new ActiveXObject("Microsoft.XMLHTTP"); return xmlHttp; } catch (ex) {}
		return null;
	} else	{
		try {xmlHttp = new XMLHttpRequest(); return xmlHttp;} catch(ex) {}
		return null;
	}
}
// Use AJAX-type method to execute server-side script
function XMLHttp(formFields, strUrl, httpGET) {
	 var strText = "";
	 var getorpost=(typeof(httpGET)!="undefined" && httpGET==true)? "GET" : "POST";
	 xmlhttp = GetXmlHttpObject();
	 try {
		 if (xmlhttp != null) {
			 xmlhttp.open(getorpost, strUrl, false);
			 xmlhttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
			 xmlhttp.send(formFields);
			 strText = xmlhttp.responseText;
		 }
	 }catch(ex){}
	 return strText;
}
// Simple Find & Replace within a string
function ReplaceString(TheString, SearchFor, ReplaceWith) {
	var SearchPattern = eval("/" + SearchFor + "/g");
	return TheString.replace(SearchPattern, ReplaceWith);
}
// Set SelectBox's Selected Value
function setSelect(elmID, selectedValue, force) {
	if ((force !== 'undefined') && (force == true)) {
		if (EBI(elmID)) { //Make sure select box exists
			EBI(elmID).value = selectedValue;
		}
	} else {
		if (selectedValue.length!==0 && selectedValue.trim()!=="") { //check that a value was sent
			if (EBI(elmID)) { //Make sure select box exists
				EBI(elmID).value = selectedValue;
			}
		}
	}
}

// Get form Context
function getForm(formName) {
	var obj_frm = null;
	if (window.navigator.appName.toLowerCase().indexOf("microsoft") > -1) {
		try { obj_frm = eval("document." + formName);} catch (ex) {}
	} else {
		try { obj_frm = document.forms[formName]; } catch (ex) {}
	}
	return obj_frm;
}

// Show or Hide an Element
function sh(elmID, elmTarget) {
	var objTarget = null;
	if (elmID) {
		if (EBI(elmID)) {
			objTarget = EBI(elmID);
		}
	} else {
		if (elmTarget) {
			objTarget = elmTarget;
		}
	}
	if (objTarget) {
		if (objTarget.style.display=="none") {
			objTarget.style.display = "inline";
		} else {
			objTarget.style.display = "none";
		}
	}
}
/*
	Form Validation Functions
	Shows/Hide Validation Messages
*/
function Show_Error(formName, errObject) {
	var frm = getForm(objForm);
	if (frm[errObject]) {frm[errObject].focus();}
	EBI("v"+errObject).style.display = "block";
}
function Hide_Error(errObject) {
	EBI("v"+errObject).style.display = "none";
}

function mnuOv(targ) {
	if (targ.className=="objMenu") {
		targ.className = "objMenu_Ov";
	}
}
function mnuOut(targ) {
	if (targ.className=="objMenu_Ov") {
		targ.className = "objMenu";
	}
}
function mnuClick(targ) {
	if (targ.getAttribute("cmd")){
		var cmd = targ.getAttribute("cmd");	
		//alert(cmd.indexOf("adm_"))
		if ((cmd.indexOf("adm_") < 0) && (cmd.indexOf("pub_") < 0)) {
			document.location = "Default.aspx?cmd=" + cmd;
		} else {
			document.location = "Admin.aspx?cmd=" + cmd;
		}
	}
}
function tempNav(targ) {
    document.location = targ.getAttribute("cmd");
    
}
function QuickSearch() {
	var targ = EBI("QS");
	if (targ.value!=="Search this Section" && targ.value!=="") {
		//Do Search;
		document.location = document.location.href.split("?")[0] + "?objID=" + objID + "&cmd=search&qs=" + targ.value;
	}
}
function SubmitSearch() {
	var catID = EBI("catID").value;
	var NS = EBI("NS").value;
	NS = ReplaceString(NS,"&","%26");
	document.location = "Default.aspx?cmd=dosearch&ns=" + NS + "&catID=" + catID;
}
function SiteSearch(qs) {
	if (qs!=="") {
		document.location = "Search.aspx?qs=" + qs;
	}
}
function getCat(catID, parentID, objID) {
	var strCmd = "";
	if (parentID !== 0) {
	    strCmd = "cmd=browse&";
	}
	if (catID) {
		document.location = "Media.aspx?objID=" + objID + "&" + strCmd + "catID=" + catID;
	}
}
function docList(catID, objID) {
	if (catID && objID) {
		document.location = "Documents.aspx?cmd=browse&objID=" + objID + "&catID=" + catID;
	}
}
var curDoc = null;
function ShowHideInfo(docID) {
if (EBI(docID)) {
	if (EBI(docID).className == "infoHide") {
		if (curDoc) {
			EBI(curDoc).className = "infoHide";	
		}
		EBI(docID).className = "infoShow";
		curDoc = docID;
	} else {
		EBI(docID).className = "infoHide";
		curDoc = null;
	}
}
}
function catchKey(e) {
	intKeyCode = e.keyCode;
	if (intKeyCode==13) {
		cleanThis(EBI("QS"));
		QuickSearch();
	}
}
function catchKey2(e) {
	intKeyCode = e.keyCode;
	if (intKeyCode==13) {
		cleanThis(EBI("QS"));
		SiteSearch(EBI("QS").value);
	}
}
function fnSendXMLHTTPRequest_Post(strURL, strXMLData){
	    var objHTTP, strResult;
	    // >> Create The XMLHTTP Object
	    objHTTP = new ActiveXObject('Microsoft.XMLHTTP');
	    // >> Initialize The XMLHTTP Object 
	    objHTTP.Open('POST',strURL,false);
	    // >> Set Compatible Request Header
	    objHTTP.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
	    // >> Encode The XML Data As Valid Data For Secure Call
	    strXMLText = fnEncodeXMLForXMLHTTPPost(strXMLData);
	    // >> Post The Data To The Server
	    objHTTP.send(strXMLText);
	    // Return The Response Text
	    return objHTTP.responseText;
}
function fnEncodeXMLForXMLHTTPPost(strXMLText){
	    var blnInvalidCharPresent = true;
	    // >> Loop Through The XML String To Replace The < With &lt; And > With &gt;
	    do
	    {	strXMLText = strXMLText.replace("<", "&lt;");
		    strXMLText = strXMLText.replace(">", "&gt;");
		    if ( strXMLText.indexOf("<") < 0 && strXMLText.indexOf(">") < 0 )
			    {blnInvalidCharPresent = false;}
	    }	while (blnInvalidCharPresent == true);
	    // >> Return The Replaced String
	    return strXMLText;
}

function addLoadEvent(func) {
  var oldonload = window.onload;
  if (typeof window.onload != 'function') {
    window.onload = func;
  } else {
    window.onload = function() {
      if (oldonload) {
        oldonload();
      }
      func();
    }
  }
}

function gen_Select(objeto,innerHTML){
	objeto.innerHTML = ""
	//creating phantom element to receive temp innerHTML
	var selTemp = document.createElement("micoxselect")
	var opt;
	selTemp.id="tmp_Select"
	document.body.appendChild(selTemp)
	selTemp = document.getElementById("tmp_Select")
	selTemp.style.display="none"
	if(innerHTML.toLowerCase().indexOf("<option")<0){//if not option, convert do option
		innerHTML = "<option>" + innerHTML + "</option>"
	}
	innerHTML = innerHTML.replace(/<option/g,"<span").replace(/<\/option/g,"</span")
	selTemp.innerHTML = innerHTML
	//transfering childs of phantom element to options
	for(var i=0;i<selTemp.childNodes.length;i++){
		if(selTemp.childNodes[i].tagName){
			opt = document.createElement("OPTION")
			for(var j=0;j<selTemp.childNodes[i].attributes.length;j++){
				opt.setAttributeNode(selTemp.childNodes[i].attributes[j].cloneNode(true))
			}
			opt.value = selTemp.childNodes[i].getAttribute("value")
			opt.text = selTemp.childNodes[i].innerHTML
			if(document.all){ //IEca
				objeto.add(opt)
			}else{
				objeto.appendChild(opt)
			}                    
		}    
	}
	//clear phantom
	document.body.removeChild(selTemp)
	selTemp = null
}    
function setRadio(obj, val) {
	
	
}

function setClass(obj, className) {
        obj.className=className;    
}
function partner(ID) {
        document.location.href='matches.aspx?cmd=partner&action=partner&UserID=' + ID;    
}
function approve(ID) {
        document.location.href='matches.aspx?cmd=partner&action=approve&UserID=' + ID;    
    } 