function loginout(sfru)
{
	window.open(sfru+'?login=1','_self');
}
function login_error(obj)
{
	
	obj.className=obj.className+'_focus';
//	alert(obj.className);
	obj.focus();obj.select();
}

function srch(urlv,k1,k2,ca,pn,pc)
{
//check page number	
	if(pn>pc) {pg=pc;}else{pg=pn;}
//check category (true - category , false - business)
	if(ca===true){bc=1;}else{bc=0;}
	window.open(urlv+"search_results.php?pg="+pg+"&bc="+bc+"&k1="+k1+"&k2="+k2,"_self");
	return false;
}

function stat(){window.status="";}

function CheckEmail(eml)
{
	chrs = "@.[]-_1234567890abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";
	one = /(@.*@)|(\.\.)|(^\.)|(^@)|(@$)|(\.$)|(@\.)/;
	two = /^.+\@(\[?)[a-zA-Z0-9\-\.]+\.([a-zA-Z]{2,4}|[0-9]{1,3})(\]?)$/;
	for(i=0;i<eml.length;i++){if(chrs.indexOf(eml.charAt(i))<0){return false;}}
	if(document.images){if (!eml.match(one) && eml.match(two)){return false;}}
}

function ChkEmail(eml)
{
	var suffix=1;
	var domains=/^(com|net|org|edu|int|mil|gov|arpa|biz|aero|name|coop|info|pro|museum)$/;
	var emlfmt=/^(.+)@(.+)$/;
	var invchars="\\(\\)><@,;:\\\\\\\"\\.\\[\\]";
	var valchars="\[^\\s"+invchars+"\]";
	var vallocal="(\"[^\"]*\")";
	var ipdomain=/^\[(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})\]$/;
	var nonspecchars=valchars+'+';
	var wordstr="("+nonspecchars+"|"+vallocal+")";
	var strlocal=new RegExp("^"+wordstr+"(\\."+wordstr+")*$");
	var strdomain=new RegExp("^"+nonspecchars+"(\\."+nonspecchars +")*$");
	var emlarray=eml.match(emlfmt);
	
	if(emlarray==null){return false;}
	var local=emlarray[1];
	var domain=emlarray[2];
	for(i=0; i<local.length; i++){if (local.charCodeAt(i)>127){return false;}}
	for(i=0; i<domain.length; i++){if (domain.charCodeAt(i)>127){return false;}}
	if(local.match(strlocal)==null){return false;}
	
	var iparray=domain.match(ipdomain);
	if(iparray!=null){for (var i=1;i<=4;i++){if (iparray[i]>255){return false;}}return true;}
	
	var nonspeccharsfmt=new RegExp("^"+nonspecchars+"$");
	var domArr=domain.split(".");
	var len=domArr.length;
	for(i=0;i<len;i++){if(domArr[i].search(nonspeccharsfmt)==-1){return false;}}
	if (suffix && domArr[domArr.length-1].length!=2 && domArr[domArr.length-1].search(domains)==-1){return false;}
	if (len<2){return false;}
	
	return true;
}

//window.scroll(0,0);
function TrimChk(obj,msg)
{
	if(Trim(obj.value)=="")
		{SF_errmsg_writer(msg);obj.select();obj.focus();return false;}
	else{obj.value=Trim(obj.value);}
}

function Trim0Chk(obj,msg)
{
	if(Trim(obj.value)=="0")
		{SF_errmsg_writer(msg);obj.focus();return false;}
	else{obj.value=Trim(obj.value);}
}

function isNaNChk(obj,msg)
{
	if(isNaN(obj.value)===true)
		{SF_errmsg_writer(msg);obj.select();obj.focus();return false;}
	else{obj.value=Trim(obj.value);}
}

function LenLTnChk(lenv,obj,msg)
{
	if(Len(obj.value)<lenv)
		{SF_errmsg_writer(msg);obj.select();obj.focus();return false;}
	else{obj.value=Trim(obj.value);}
}

function TrimNFChk(obj,msg)
{
	if(Trim(obj.value)=="")
		{SF_errmsg_writer(msg);return false;}
	else{obj.value=Trim(obj.value);}
}

function TrimChkMulti(obj,msg)
{
	if(obj.length==0)
		{SF_errmsg_writer(msg);obj.focus();return false;}
}

function TrimChkCheckbox(obj,msg)
{
	if(obj.checked===false)
		{SF_errmsg_writer(msg);obj.focus();return false;}
}


function Right(str, n)
{
    if (n <= 0)
        return "";
    else if (n > String(str).length)
        return str;
    else {
	    var iLen = String(str).length;
        return String(str).substring(iLen, iLen - n);
    }
}

function Chr(CharCode){return String.fromCharCode(CharCode);}

function Asc(CharText){return CharText.charCodeAt(0);}

function uEsc(strv){return(unescape(ReplaceAll(ReplaceAll(strv,"&","%0D"),"+","%20")));}

function Esc(strv)	{return (escape(strv));}

function ReplaceAll(strv,strf,strr){
	var strn="";var idx=0;
	while (strv.indexOf(strf,idx) != -1)  
	{
		strn=strn+strv.substring(idx,strv.indexOf(strf,idx))+strr;
		idx=(strv.indexOf(strf,idx) + strf.length);
	}
	return strn+strv.substring(idx,strv.length);
}

function Left(str, n)
{
    if (n <= 0)
        return "";
    else if (n > String(str).length)
        return str;
    else
        return String(str).substring(0,n);
}

function Len(str)
{
	return String(str).length;
}

function Mid(str, start, len)
{
    if (start <= 0 || len < 0) return "";
    var iEnd, iLen = String(str).length;
    if (start-1 + len > iLen)
        iEnd = iLen;
    else
        iEnd = start-1 + len;
    return String(str).substring(start-1,iEnd);
}

function InStr(strSearch, strSearchFor)
{
	var iLen = Len(strSearchFor)
	for (i=0; i <= Len(strSearch)-iLen; i++)
	{
	    if (strSearchFor == Mid(strSearch, i, iLen))
	    {
			return i;
	    }
	}
	return -1;
}

function InStrSpot(Spot, strSearch, strSearchFor)
{
	var iLen = Len(strSearchFor)
	for (i=Spot; i <= Len(strSearch)-iLen; i++)
	{
	    if (strSearchFor == Mid(strSearch, i, iLen))
	    {
			return i;
	    }
	}
	return -1;
}

function Trim(str)
{
	return RTrim(LTrim(str));
}

function RTrim(str)
{
	var whitespace = new String(" \t\n\r");
	var s = new String(str);
	if (whitespace.indexOf(s.charAt(s.length-1)) != -1) {
        var i = s.length - 1;
        while (i >= 0 && whitespace.indexOf(s.charAt(i)) != -1)
            i--;
            s = s.substring(0, i+1);
    }
    return s;
}

function LTrim(str)
{
	var whitespace = new String(" \t\n\r");
	var s = new String(str);
    if (whitespace.indexOf(s.charAt(0)) != -1) {
        var j=0, i = s.length;
        while (j < i && whitespace.indexOf(s.charAt(j)) != -1)
            j++;
            s = s.substring(j, i);
    }
	return s
}

function Replace(str,fstr,rstr)
{//str ASDF fstr//SD rstr//QW
	var vlen = Len(str);//4
	var vbeg = InStr(str,fstr);//1
	if(vbeg=="-1"){return str;}
	var vpre = LEFT(str,vbeg);//A
	var vmid = rstr;//QW
//	var vsuf = vlen-vbeg+Len(vmid)
//	alert(vbeg + Len(vmid));
	var vsuf = Mid(str,vbeg + Len(fstr),vlen-vbeg+Len(fstr)-1);//F
//	alert(str+"-"+fstr+"-"+rstr+"\n"+vlen+"-"+vbeg+"-"+vpre+"-"+vmid+"-"+vsuf);
	return vpre + vmid + vsuf;
}


function valid_date(date_field,ptobj)
{
	var a = new Array("29","31","28","31","30","31","30","31","31","30","31","30","31");

	if(Len(Trim(date_field.value))!=0)
	{
		if (Mid(Trim(date_field.value),4,1)!="-" || Mid(Trim(date_field.value),7,1)!="-" || Len(Trim(date_field.value))!=10)
			{pt_click(ptobj,2);alert("Please re-enter the date in the YYYY-MM-DD format...");date_field.focus();date_field.select();return false;}
	}
			
	if(Mid(Trim(date_field.value),5,2)=="00")
		{pt_click(ptobj,2);alert("Please enter a valid month entry...");date_field.focus();date_field.select();return false;}
	
	if(Mid(Trim(date_field.value),8,2)=="00")
		{pt_click(ptobj,2);alert("Please enter a valid day entry...");date_field.focus();date_field.select();return false;}
	
	if(Mid(Trim(date_field.value),5,1)=="0")
	{
		if(Mid(Trim(date_field.value),5,2)=="02")
		{
			var leap_year = parseInt(Mid(Trim(date_field.value),0,4))%4;
			if(leap_year != 0)
			{
				if(a[parseInt(Mid(Trim(date_field.value),6,1))] < Mid(Trim(date_field.value),8,2))
					{pt_click(ptobj,2);alert("Please enter a valid day entry for the given month...");date_field.focus();date_field.select();return false;}
			}
			else
			{
				if(a[0] < Mid(Trim(date_field.value),8,2))
					{pt_click(ptobj,2);alert("Please enter a valid day entry for the given month...");date_field.focus();date_field.select();return false;}
			}
		}
		else
			if(a[parseInt(Mid(Trim(date_field.value),6,1))] < Mid(Trim(date_field.value),8,2))
				{pt_click(ptobj,2);alert("Please enter a valid day entry for the given month...");date_field.focus();date_field.select();return false;}
	}
	else
	{
		if(a[parseInt(Mid(Trim(date_field.value),5,2))] < Mid(Trim(date_field.value),8,2))
			{pt_click(ptobj,2);alert("Please enter a valid day entry for the given month...");date_field.focus();date_field.select();return false;}
	}
	if(isNaN(LEFT(date_field.value,4))===true || isNaN(Mid(Trim(date_field.value),5,2))===true || isNaN(Right(Trim(date_field.value),2))===true)
		{pt_click(ptobj,2);alert("Please enter integers into the 'YYYY-MM-DD' date format...");date_field.focus();date_field.select();return false;}
}

//FLASH FIX

var bo_ns_id = 0;
function startIeFix()
{  
	if(isIE())
	{    
		document.write('<div id="bo_ns_id_' + bo_ns_id + '"><!-- ');
	}
}

function endIeFix()
{  
	if(isIE())
	{    
		document.write('</div>');
		var theObject = document.getElementById("bo_ns_id_" + bo_ns_id++);
		var theCode = theObject.innerHTML;
		theCode = theCode.substring(4 ,9+theCode.indexOf("</object>"));
		document.write(theCode);
	}
}
function endIeFix2()
{  
	if(isIE())
	{    
		document.write('</div>');
		var theObject = document.getElementById("bo_ns_id_" + bo_ns_id++);
		var theCode = theObject.outerHTML;
		theCode = theCode.substring(4 ,9+theCode.indexOf("</object>"));
		document.write(theCode);
	}
}

function isIE()
{
// only for Win IE 6+ 
// But not in Windows 98, Me, NT 4.0, 2000
	var strBrwsr= navigator.userAgent.toLowerCase();
	if(strBrwsr.indexOf("msie") > -1 && strBrwsr.indexOf("mac") < 0)
	{    
		if(parseInt(strBrwsr.charAt(strBrwsr.indexOf("msie")+5)) < 6)
		{      
			return false;
		}    
		if(strBrwsr.indexOf("win98") > -1
			|| strBrwsr.indexOf("win 9x 4.90") > -1
			|| strBrwsr.indexOf("winnt4.0") > -1
			|| strBrwsr.indexOf("windows nt 5.0") > -1)
		{
			return false;
		}
		return true;
	}
	else
	{	
		return false;
	}
}

//FAQ TOGGLE

function faq_toggle(obj)
{
	if(obj.style.display=='none'){obj.style.display='block';}else{obj.style.display='none';}return false;
}

function faq_sh(obj){if(obj.style.display=='none'){obj.style.display='inline';}else{obj.style.display='none';}}
function faq_oo(obj){if(obj.style.fontStyle=='italic'){obj.style.fontStyle='';}else{obj.style.fontStyle='italic';}}


function loo(obj,sec)
{
	if(obj.id==prev_obj.id && sec==1){return false;}
	
	if(prev_obj.id!==first_obj.id)
	{
		prev_obj.style.color='#ffffff';
		prev_obj.style.backgroundColor='#000066';
		prev_obj=obj;
	}
	if(obj.id!==first_obj.id && sec==2)
	{
		prev_obj.style.color='#ffffff';
		prev_obj.style.backgroundColor='#000066';
		prev_obj=first_obj;
	}
	if(obj.id!==first_obj.id && sec==1)
	{
		prev_obj=obj;
		obj.style.color='#000066';
		obj.style.backgroundColor='#ffffff';
	}
}

function lclick(obj)
{
	var val = obj.innerText;
	if(val=="#"){val="0";}
	window.open('?id='+val,"_self");
}

/* SELECT MULTIPLES */

//var NS4 = (navigator.appName == "Netscape" && parseInt(navigator.appVersion) < 5);
//var newOpt = new Option(theText, theValue);
//var selLength = theSel.length;
//theSel.options[selLength] = newOpt;

function addOption(theSel, theText, theValue)
{
	try {
		theSel.add(new Option(theText, theValue));
	}
	catch (e) {
		//For Opera Issues
		var newOpt = document.createElement('option');
		newOpt.value = theValue;
		newOpt.appendChild(document.createTextNode(theText));
		theSel.appendChild(newOpt);
	}
	
}
function deleteOption(theSel, theIndex)
{ 
  var selLength = theSel.length;
  if(selLength>0)
  {
    theSel.options[theIndex] = null;
  }
}
function moveOptions(theSelFrom, theSelTo)
{
  var selLength = theSelFrom.length;
  var selectedText = new Array();
  var selectedValues = new Array();
  var selectedCount = 0;
  var i;
  // Find the selected Options in reverse order
  // and delete them from the 'from' Select.
  for(i=selLength-1; i>=0; i--)
  {
    if(theSelFrom.options[i].selected)
    {
      selectedText[selectedCount] = theSelFrom.options[i].text;
      selectedValues[selectedCount] = theSelFrom.options[i].value;
      deleteOption(theSelFrom, i);
      selectedCount++;
    }
  }
  // Add the selected text/values in reverse order.
  // This will add the Options to the 'to' Select
  // in the same order as they were in the 'from' Select.
  for(i=selectedCount-1; i>=0; i--)
  {
    addOption(theSelTo, selectedText[i], selectedValues[i]);
  }
  
  if(theSelTo.length>1){sortArray(theSelTo);}
//  if(theSelFrom.length!=0){sortArray(theSelFrom);}
  
  //if(NS4) history.go(0);
}

function sortArray(theSelect) {
// dF = document.forms[whichForm];
// dFS = dF.elements[whichSelect];
 	var tempNames= new Array();
 	var tempValues= new Array();
	for (i=0;i<theSelect.length;i++)
	{
		tempNames[i]=theSelect.options[i].text;
 	}
	tempNames.sort();
	for (i=0;i<tempNames.length;i++)
	{
  		theSelect.options[i].text = tempNames[i];
	}
}

function sortlist(theSel) {
	var lb = theSel;
	arrTexts = new Array();
	arrVals = new Array();

	for(i=0; i<lb.length; i++)
	{
  		arrTexts[i] = lb.options[i].text;
  		arrVals[i] = lb.options[i].value;
	}

	arrTexts.sort();

	for(i=0; i<lb.length; i++)
	{
		lb.options[i].text = arrTexts[i];
		lb.options[i].value = arrVals[i];
	}
}


function selectAll(selectBox,selectAll) {
	// have we been passed an ID
	if (typeof selectBox == "string") {
		selectBox = document.getElementById(selectBox);
	}
	// is the select box a multiple select box?
	if (selectBox.type == "select-multiple") {
		for (var i = 0; i < selectBox.options.length; i++) {
			selectBox.options[i].selected = selectAll;
		}
	}
}
/*----------------------- ADDED BY NRS --------------------*/
function start_ajax(){
	try {  // Firefox, Opera 8.0+, Safari
		xmlHttp=new XMLHttpRequest();
		xmlHttp.overrideMimeType('text/xml'); // This is needed for some Mozilla browsers if you're going to POST data
	}
	catch (e) {  // Internet Explorer  
		try {  
			xmlHttp=new ActiveXObject("Msxml2.XMLHTTP"); // IE6
		}
		catch (e) {    
			try {      
				xmlHttp=new ActiveXObject("Microsoft.XMLHTTP"); // Older IE     
			}
			catch (e) {      
				alert("Your browser does not support AJAX!");      
				return false;     
			}    
		}  
	}
}

function load_menu_ajax(rooturl,url,spanid){ // Load Location selects
	start_ajax();
	document.getElementById(spanid).innerHTML = '<img src="'+rooturl+'__img/loading2.gif" />';

 xmlHttp.onreadystatechange=function(){   

         load_menu_page(xmlHttp, spanid); 

         }   
	url += "&ms=" + new Date().getTime();
 xmlHttp.open('GET', url, true);   

 xmlHttp.send(null);   

}

function load_menu_page(xmlHttp, spanid){   

 if ( xmlHttp.readyState == 4 && xmlHttp.status == 200 ){   

  document.getElementById(spanid).innerHTML = xmlHttp.responseText;   

 }   

} 

function reset_menu_ajax(spanid){ // Reset Select Box
  document.getElementById(spanid).innerHTML = '';  
}
/*---------------------------------------------------------------*/

/*
   function OnTransferBtnClick(blnFromLeft,objL,objR)
   {
    var LeftListBox = objL;
    var RightListBox = objR;
    var ListItems = new Array();
    FromList = (blnFromLeft ? LeftListBox : RightListBox); 
    ToList = (blnFromLeft ? RightListBox : LeftListBox);
    for(var i=(FromList.options.length - 1);i>=0;i--)
     if(FromList.options[i].selected)
       {
        ListItems[ListItems.length] = new Option(FromList.options[i].text);
        FromList.options[i] = null;
       } 
     for(var i=ListItems.length - 1;i>=0;i--)
      ToList.options[ToList.options.length] = ListItems[i];
	 
	 
	 //if(LeftListBox.options.length>1){sortArray(LeftListBox);}
	 //if(RightListBox.options.length>1){sortArray(RightListBox);}
    } 
 */ 

 //				<!--OnTransferBtnClick(true,document.getElementById('sel_cat'),document.getElementById('sel_cid')); OnTransferBtnClick(false,document.getElementById('sel_cat'),document.getElementById('sel_cid')); -->
  
  
  
/*   function OnBtnSubmitClick()
   {
    ListBox = document.forms[0].lstRight;
    if(ListBox.options.length==0)
      //alert("You did not selection any item/items. Please choose an item/items from the left list box and transfer them to the right list box");
    else
    {
      var strChosenItems = "";
      for(var i=0;i<ListBox.options.length;i++)
        strChosenItems = strChosenItems + "  " + ListBox.options[i].text;
      alert("You chose : " + strChosenItems);
    } 
   }*/


/*
function checkfirst(field) 
{
  	if (field.value == "") 
  	{
    	alert("Please enter your first name");
		field.focus();
		field.blur();
		field.select();
  	}
}
  
function checklast(field)
{
	if (field.value == "")
	{
    	alert("Please enter your last name");
		field.focus();
		field.blur();
		field.select();
  	}
}

function checkemail(field)
{
  	if (field.value.indexOf("@") == -1)
  	{
    	alert("Enter a valid e-mail address");
		field.focus();
		field.blur();
		field.select();
	}
}
*/