cachedImgs=new Array();
function cache(x){if(document.images){cachedImgs[cachedImgs.length]=new Image();cachedImgs[cachedImgs.length-1].src=x;};}
function cacheBtns(imgs){for(i=0;i<imgs.length;i++){cache("rsrc/"+imgs[i]+"-1.gif");};}
function setState(i,s){if(document.images){i.src= i.src.substring(0,i.src.lastIndexOf("-")) +"-"+s+".gif";};}

// cache menu imgs
cacheBtns(new Array('m_contact','m_gardiennage','m_index','m_properties','m_region','m_request','btn-region','btn-propreq') );

function openCard(){window.open('businesscard.htm', null, 'width=362,height=249,status=no,toolbar=no,location=no');return false;}


function isNumeric(strString)
//  check for valid numeric strings	
{
	var strValidChars = "0123456789.-";
	var strChar;
	var blnResult = true;

	if (strString.length == 0) return false;

	//  test strString consists of valid characters listed above
	for (i = 0; i < strString.length && blnResult == true; i++)
	  {
	  strChar = strString.charAt(i);
	  if (strValidChars.indexOf(strChar) == -1)
		 {
		 blnResult = false;
		 }
	  }
	return blnResult;
}


function openPhoto(url) {// gallery
  window.open(url,"photo_"+url,'width=500,height=585,status=no,toolbar=no,location=no,menubar=no');return false;
}


// framework

function lyvis(l,v){if(isNS6()&&document.getElementById(l)){document.getElementById(l).style.display = v?"block":"none";}else if(isIE4()&&document.all[l]){document.all[l].style.display = v?"block":"none";}else if(isNS4()&&document.layers[l]){document.layers[l].visibility = v?"show":"hide";};}

function getlyvis(l){if(isNS6()&&document.getElementById(l)){return (document.getElementById(l).style.display!="none");}else if(isIE4()&&document.all[l]){return (document.all[l].style.display!="none");}else if(isNS4()&&document.layers[l]){return (document.layers[l].visibility=="show");};}

function isNS4(){return(document.layers)?true:false;}
function isIE4(){return(document.all)?true:false;}
function isNS6(){return(document.getElementById)?true:false;}
function lywrite(l,h){if(isIE4()){document.all[l].innerHTML=h;}else if(isNS6()){document.getElementById(l).innerHTML=h;};}

function checkForm(f){
if(!document.getElementById){return;}
var oktosend=true;var fs=f.elements
mail = "";
for(var i=0;i<fs.length;i++){
	if(fs[i].type&&fs[i].name){

	//get field value
	var ftype=fs[i].type;var efilter=false
	if(ftype=="text"||ftype=="textarea"){
		v=fs[i].value
		}else if(ftype=="select-one"||ftype=="select-multiple"){
		v=fs[i][fs[i].selectedIndex].value
		}else if(ftype=="checkbox"){
		v=fs[i].checked
		//alert(v)
		}
		else{
		v="!"//other types, don't check
		}
		var isfilled=isvalid=(v!="");
	
	//special fields:
		
		if(fs[i].name&&fs[i].name.indexOf("mail")>-1){ftype="email";efilter=true;}
		if(fs[i].name&&fs[i].name.indexOf("mail2")>-1){ftype="email";efilter=true;}
		if(fs[i].name&&fs[i].name.indexOf("telefono")>-1){ftype="phone";efilter=true;}
		if(fs[i].name&&fs[i].name.indexOf("celu")>-1){ftype="phone";efilter=true;}
		if(fs[i].name&&fs[i].name.indexOf("cuit")>-1){ftype="cuit";efilter=true;}
		if(efilter){isvalid=isValidField(v,ftype);}

		
	
	//is required, or need to check if filled?
	var reqelm=FindClassUp(fs[i],"required","form")
	if(!reqelm&&efilter&&isfilled){
		reqelm=FindClassUp(fs[i],"field","form");
		if(!reqelm){reqelm=fs[i];}
		}
	
	if(!isvalid&&reqelm){
		if(oktosend)fs[i].focus()
		oktosend=false
		fs[i].onclick=rmErrorClass;fs[i].onfocus=rmErrorClass;fs[i].onkeyup=rmErrorClass;
		AddClass(reqelm,"error");
	}
	}//end filter fs
}//end for i in fs
return oktosend;
}

function rmErrorClass(event){
var elm=this;var etag=FindClassUp(elm,"error","form");if(!etag){etag=FindClassUp(elm,"field","form");};if(!etag){etag=elm}
if(etag){KillClass(etag,"error");elm.onclick=null;elm.onfocus=null;elm.onkeyup=null}
}


function isValidField(t,k){
if(k=="email"){
	var emailFilter=/^.+@.+\..{2,}$/;
	var illegalChars= /[\(\)\<\>\,\;\:\\\/\"\[\]]/
	if(mail=="")
	{
		mail = t;
	}
	else
	{
		if(mail != t)


			return false;
	}
	if(!(emailFilter.test(t))||t.match(illegalChars)){return(false);}else{return (true);}
	return false
	
	}//end email
else if(k=="phone"){
	
	return isNumeric(t);
	}
else if(k=="cuit"){
	
	return isNumeric(t);
	}
else if(k=="falsear"){
	
	return false;
	}
}

function linkCSS(url,cid){
if(document.createElement){
var c=document.createElement('link');c.rel='stylesheet';c.href=url;if(cid){c.id=cid;}
var h=document.getElementsByTagName("head")[0];h.insertBefore(c,null);
if(cid){return(document.getElementById(cid));}
}else{return false;}
}
function FindClassUp(p,classname,limit){
if(!limit){limit="html";}else{limit=limit.toLowerCase();}
while(true){
	p=p.parentNode;if(!p.tagName||p.tagName.toLowerCase()==limit){return false;}
	if(HasClass(p,classname)){return p;};
	}
}

//*** This code is copyright 2002-2003 by Gavin Kistner and Refinery; www.refinery.com
//*** It is covered under the license viewable at http://phrogz.net/JS/_ReuseLicense.txt
function AddClass(obj,cName){KillClass(obj,cName);return obj&&(obj.className+=(obj.className.length>0?' ':'')+cName);}
function KillClass(obj,cName){return obj&&(obj.className=obj.className.replace(new RegExp("^"+cName+"\\b\\s*|\\s*\\b"+cName+"\\b",'g'),''));}
function HasClass(obj,cName){return(!obj||!obj.className)?false:(new RegExp("\\b"+cName+"\\b")).test(obj.className);}
