/* arqa.js // 2007-2008, icograma.com
   requires: mootools 1.11 */


/* debug functions */
var annoy=true;function debug(msg){if(annoy){annoy=confirm(msg);};};function spot(obj){ $(obj).addClass("spot");}

arqaGlobals = new Object;


function printPage(){ window.print();return false; }

function rmHintEv(){ rmHint(this); }
function rmHint(what){
	if( !($(what)) ){ what=this; }
	if( $(what).hasClass('hint') ){
		what.value="";
		what.removeClass('hint');
	}
}

function addHintEv(){ addHint(this); }
function addHint(what){
	if( !($(what)) ){ what=this; }
	if(what.title.indexOf("*")==0){
		var t = what.title.substring(1);
		if(what.value=="" || what.value == t){
			what.value = t;
			what.addClass("hint");
		}
	}
}

function dynLayoutEv(){
	if(arqaGlobals.inited){
		dynLayout( window.getWidth() );
		};
	}
function dynLayout(w){
	if( w ){
		var b=document.getElementsByTagName("HTML")[0];
		b.className = w >= 928 ? "w1024" : "w800" ;
		Cookie.set("browserWidth",w,{path:"/"});
		}
	}

function arqaInit(){
	if(arqaGlobals.inited){ return false; }

	arqaGlobals.inited = true; dynLayoutEv();
	
	initGalleries( arqaGlobals.galleries );

	for( var f=0; f<document.forms.length; f++){

		var fs = document.forms[f].elements;
	
		for ( var j=0; j<fs.length; j++ ){
			if( $(fs[j]).type == "text" ){
				addHint( $(fs[j]) );
				$(fs[j]).addEvent( "blur", addHint );
				$(fs[j]).addEvent( "focus", rmHint );

			}//end type==text
		}//end j
	}//end f
	
//	var mylightbox = new Lightbox( );
	window.addEvent("resize",dynLayoutEv);
	
}//end init fn

//window.addEvent('domready', arqaInit); //ie goes nuts
//window.addEvent('load', arqaInit);



arqaGlobals.galleries = new Array();

function registerGallery(){
	var galleries=arguments;
	for( var i = 0; i<galleries.length; i++ ){
		arqaGlobals.galleries[arqaGlobals.galleries.length] = galleries[i];
	}
}


function initGalleries() {

	var galleries=arguments;
	if(typeof(galleries)=="object"){ galleries = arguments[0]; }

	var options = { timed: false, lightbox: true,
			showInfopane: false,
			thumbHeight: 64, thumbWidth: 64,
			fadeDuration: 250			
			}

	for( var i = 0; i<galleries.length; i++ ){
		if( $(galleries[i]) ){ 
			new gallery( $(galleries[i]), options );
			$(galleries[i]).removeClass("notReady");
		}//end if
	}//end for
	
	var mylightbox = new Lightbox( ); //lo hacemos en arqaInit()

}


/* SWFembed */

function swfembed(src,w,h){ 
	document.write('<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http:\/\/download.macromedia.com\/pub\/shockwave\/cabs\/flash\/swflash.cab#version=7,0,0,0" height="'+h+'" width="'+w+'"><param name="movie" value="'+src+'"><param name="quality" value="high"><param name="play" value="true"><param name="wmode" value="opaque"><embed height="'+h+'" width="'+w+'" pluginspage="http:\/\/www.macromedia.com\/go\/getflashplayer" src="'+src+'" type="application\/x-shockwave-flash" quality="high" play="true" wmode="opaque" \/><\/object>')
	}



/* --- FORMS & DOM ---- */

function checkForm(f){ /* for mootools - 2007, icograma.com */
if(!document.getElementById){ return true; }
var oktosend=true; var fs=f.elements;
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 && !$(fs[i]).hasClass("hint");
		}else if(ftype=="select-one"||ftype=="select-multiple"){
			v=fs[i][fs[i].selectedIndex].value;
		}else if(ftype=="checkbox"){
			v=fs[i].checked;
		}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(efilter){ isvalid=isValidField(fs[i].value,ftype); }
	
	//is required, or need to check if filled?
	var reqelm = FindTagClassUp(fs[i],".required","form");

	if( reqelm && fs[i].offsetWidth == 0 ){ //hidden elements can't be required
		reqelm = false;
	}else if(!reqelm&&efilter&&isfilled){
		reqelm=FindTagClassUp(fs[i],".field","form");
		if(!reqelm){reqelm=fs[i];}
	};
	
	if(!isvalid&&reqelm){
		if(oktosend&&(ftype.indexOf("mail")>-1||ftype.indexOf("text")>-1||ftype.indexOf("select")>-1) ){ fs[i].select(); }
		oktosend=false;
		fs[i].onclick=rmErrorClass; fs[i].onkeydown=rmErrorClass;
		reqelm.addClass("error");
	}
	
	}//end filter fs
}//end for i in fs
return oktosend;
}


function FindTagClassUp(elm,tcsearch,tclimit){
var elm= $(elm);

var tc=( tcsearch+"." ).split("."); tc[0]=tc[0].toUpperCase();
if(!tclimit){tclimit="BODY";};
var tz=( tclimit+"." ).split("."); tz[0]=tz[0].toUpperCase();
	while( n = elm.nodeName ){
		
		if(tc[0]==""||n==tc[0]){
			if( tc[1]=="" || $(elm).hasClass(tc[1]) ){ return elm; }; };
		if(tz[0]==""||n==tz[0]){
			if( tz[1]=="" || $(elm).hasClass(tz[1]) ){ return false; }; };
		elm=elm.parentNode;
	};
	debug("No se pudo obtener NODENAME para: ",elm);
	return false;
};

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

function rmErrorClassElm(elm){
var etag=FindTagClassUp(elm,".error","form");if(!etag){etag=FindTagClassUp(elm,".field","form");};if(!etag){etag=elm}
if(etag){etag.removeClass("error");elm.onclick=null;elm.onfocus=null;elm.onkeyup=null}
}

function isValidField(t,k){
if(k=="email"){
	if( t.indexOf("@example.com")>-1){return false;};
	var emailFilter=/^.+@.+\..{2,}$/;
	var illegalChars= /[\(\)\<\>\,\;\:\\\/\"\[\]]/
	if(!(emailFilter.test(t))||t.match(illegalChars)){return(false);}else{return (true);}
	return false
	}//end email
}

function rmHelpValue(t){var v=t.value;if(v.indexOf("@example.com")>-1){t.value="";};}


//DOM $path function 2007, icograma.com

function $path(e,c){
var e=$(e);
c=c.split(" ");

for(var i=0;i<c.length;i++){
	var cis = c[i].split(":")
	var num = cis[1]?cis[1]:"0"
	var ci=cis[0]

	if(ci=="<"){
		e=e.parentNode;
	}else if(ci.charAt(0)=="#"){
		e=document.getElementById( ci.substring(1) );
		if(!e){return false;};
	}else if(ci.charAt(0)=="."){
	var a=e.childNodes;var t=ci.substring(1);var d=false;
		for(var b=0;b<a.length;b++){
		if(a[b].hasClass(t)){d=a[b];break;};
		};
		if(d){e=d;}else{return false;};
	}else if(ci.charAt(0)=="<"){
		e=FindTagClassUp(e.parentNode,ci.substring(1),"BODY");
		if(!e){return false;};
	}else{
	var a = e.getElementsByTagName( ci.toLowerCase() );
		if(a.length>0){
			if(num=="0"){e=a[0];
			}else if(num=="last"||num>a.length){
			e=a[a.length-1]
			}else{
			e=a[num]
			}
		}else{
			var a = document.getElementsByName(ci);
			if( a[0] ){ e=a[0]; }else{return false;};
		};
	};
	};
	return e;
};