// Macromedia
function MM_swapImgRestore() { //v3.0
 var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
}

function MM_preloadImages() { //v3.0
 var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
 var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
 if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}

function MM_findObj(n, d) { //v4.01
 var p,i,x; if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
 d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
 if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
 for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
 if(!x && d.getElementById) x=d.getElementById(n); return x;
}

function MM_swapImage() { //v3.0
 var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
 if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
}

function print() {
	if (!document.getElementById || !document.createTextNode || !window.print) return;
	window.print();
}

String.prototype.htmlEncode = function(){
	var tmp = this;
	tmp=tmp.rep("&","&amp;");
	tmp=tmp.rep("'","&apos;");
	return tmp;
}

String.prototype.capitalize = function(){
	return this.substring(0,1).toUpperCase()+this.substring(1).toLowerCase();
}

String.prototype.left = function(chars){
	if (this.indexOf(chars)>- 1 && chars.length>0){
		var init = this.indexOf(chars);
		return this.substring(0, init);
	} return null;
}

String.prototype.right = function(chars){
	if (this.lastIndexOf(chars)>- 1 && chars.length>0){
		var init = this.lastIndexOf(chars);
		return this.substring(init+chars.length);
	} return null;
}

String.prototype.rep = function(buscar, reemplazar){
	var temp=""+this;
	if (typeof(reemplazar)=="undefined") reemplazar="";
	while(temp.indexOf(buscar)>- 1){
		var pos=temp.indexOf(buscar);
		temp=""+(temp.substring(0, pos)+reemplazar+temp.substring((pos+buscar.length), temp.length));
	}
	return temp;
}

String.prototype.toDb = function(){
	var Html=this.rep("\r\n","");
	Html=Html.rep("\n","");
	Html=Html.rep("\t","");
	Html=Html.rep("  "," ");
	Html=Html.rep("> <","><");
	Html=Html.rep("<tbody>","").rep("</tbody>","");
	Html=Html.rep("alt=\"\"","");
	return Html;
}

String.prototype.contains = function(tosearch){
	if (this!=null && this.length>0) if (this.indexOf(tosearch)>-1) return true; return false;
}

String.prototype.trim = function() {
	if (typeof this!="string") return this;
	var retValue = this;
	var ch = retValue.substring(0, 1);
	while(ch==" "){ retValue=retValue.substring(1, retValue.length); ch=retValue.substring(0, 1); }
	ch=retValue.substring(retValue.length-1, retValue.length);
	while(ch==" "){ retValue=retValue.substring(0, retValue.length-1); ch=retValue.substring(retValue.length-1, retValue.length); }
	while(retValue.indexOf("  ")!=- 1) retValue=retValue.substring(0, retValue.indexOf("  "))+retValue.substring(retValue.indexOf("  ")+1, retValue.length);
	return retValue;
}

String.prototype.isEmail = function(){
	var at="@"
	var dot="."
	var lat=this.indexOf(at)
	var lstr=this.length
	var ldot=this.indexOf(dot)
	if (this.indexOf(at)==-1) return false;
	if (this.indexOf(at)==-1 || this.indexOf(at)==0 || this.indexOf(at)==lstr) return false;
	if (this.indexOf(dot)==-1 || this.indexOf(dot)==0 || this.indexOf(dot)==lstr) return false;
	if (this.indexOf(at,(lat+1))!=-1) return false;
	if (this.substring(lat-1,lat)==dot || this.substring(lat+1,lat+2)==dot) return false;
	if (this.indexOf(dot,(lat+2))==-1) return false;
	if (this.indexOf(" ")!=-1) return false;
	return true;
}

String.prototype.delRight = function(num){
	return this.substring(0, this.length-num);
}

String.prototype.delLeft = function(num){
	return this.substring(num);
}

// Elimina el número de caracteres a la izquierda
function delLeft (str, number){
	str=str.substring(number)
	return str;
}

function Ajax(){ // Realizada una llamada Ajax sincrónicamente vía jQuery y Json
	var params = arguments[1]!=null?arguments[1]:"{}";
	var res = JSON.parse($.ajax({
		async: false,
		type: "POST",
		cache: false,
		contentType: "application/json; charset=utf-8",
		dataType: "json",
		url: arguments[0],
		data: params,
		error: function(xhr, status, error) {
			var e = JSON.parse(xhr.responseText);
			alert("Error: "+e.Message+"\n\nStackTrace: "+e.StackTrace);
		}
	}).responseText).d;
	return res;
}

function ifrm(ifrmID){ // Devuelve la referencia a un iframe
	for(var x=0; x<window.frames.length; x++) if (window.frames[x].name==ifrmID || window.frames[x].id==ifrmID) { return window.frames[x]; break; }
	return null;
}

function handleShadowboxException(error){
	alert(error,true);
}

function setFlash(swf, div, width, height, flashvars){
	var params = new Object();
	params.wmode="transparent";
	if (typeof(flashvars)!="undefined") params.flashvars=flashvars;
	var attributes	= new Object();
	attributes.styleclass="no_outline";
	swfobject.embedSWF(swf, div, width, height, "9.0.28", "../app_movies/script_flashinstall.swf", false, params, attributes);
}

function confirm1(msg){
	originalColor=$("#shadowbox_body").css("background-color");
	originalBorder=$("#shadowbox_body").css("border");
	$("#shadowbox_body").css("background-color","transparent");
	$("#shadowbox_body").css("border","0px");
	$("#alert_buttons").css("display",arguments[1]=="load"?"none":"");
	$("#alert_msg").html(msg.replace("\n","<br>"));
	$("#alert_icon").html('<img src="../app_images/ico_'+(arguments[1]!=undefined?arguments[1]:'info')+'.png"/>')
	$("#alert").css("display","");
	var width=$("#alert_tbl").width();
	var height=$("#alert_tbl").height();
	$("#alert").css("display","none");
	Shadowbox.open({
		player:"inline",
		content:"#alert",
		width:width,
		height:height,
		enableKeys: arguments[1]=="load"?false:true
	},{
		animate: false,
		animateFade: true,
		modal:true,
		fadeDuration: 0.2,
		onOpen: function(){
			$("#shadowbox_info").css("display","none")
		},
		onClose: function(){
			$("#alert").css("display","none");
			$("#shadowbox_info").show();
			$("#shadowbox_body").css("background-color",originalColor);
			$("#shadowbox_body").css("border",originalBorder);
			if (arguments[2]!=undefined) arguments[2];
		}
	});
}

$.fn.addOptionAtIndex = function(){
	var _text = arguments[0];
	var _val = arguments[1]!=null?arguments[1]:arguments[0];
	var _idx = arguments[2]!=null?parseInt(arguments[2]):null;
	return this.each(function(){
		if (this.tagName.toLowerCase()!="select") return;
		if (_val!=null && _idx==null) _idx=this.options.length;
		for (var x=0; x<this.options.length; x++){
			var _opt = $(this.options[x]);
			var _optVal = _opt.val().toString().toLowerCase();
			var _optTxt = _opt.text().toString().toLowerCase();
			if (_optTxt==_text.toString().toLowerCase()){
				if (_val!=null && _optVal!=_val.toString().toLowerCase()) _opt.val(_val);
				_opt.attr("selected","selected");
				return _opt;
			} else if (_optVal==_val.toString().toLowerCase()){
				if (_optTxt!=_text.toString().toLowerCase()) _opt.text(_text);
				_opt.attr("selected","selected");
				return _opt;
			}
		}
		var _opt = document.createElement("option");
		_opt.value=_val, _opt.text=_text;
		this.options[_idx] = _opt;
	});
};

$.fn.clear = function() {
	return this.each(function() {
		var type = this.type, tag = this.tagName.toLowerCase();
		if (tag == 'form') return $(':input',this).clear();
		if (type == 'text' || type == 'password' || tag == 'textarea') this.value = '';
		else if (type == 'checkbox' || type == 'radio') this.checked = false;
		else if (tag == 'select') this.selectedIndex = 0;
	});
};

$().ready(function() {
	// Adiciona métodos de validación a jQuery validator
	if (typeof(jQuery.validator)!="undefined"){
		$.validator.addMethod("dateEN", function(value) {
			return dateEN(value);
		}, "<br>Please enter a valid date (mm/dd/yyyy)");

		$.validator.addMethod("dateES", function(value) {
			return dateES(value);
		}, "<br>Please enter a valid date (dd/mm/yyyy)");
	}

	// Elimina los bordes en los links dentro de IE
	$("a,area,input:radio,input:checkbox,object,embed").each(function(i) {
		var el = $(this);
		el.focus(function(){ if (this.blur) this.blur(); });
		if (el.attr("title")!=""){
			el.mouseover(function(e) {
				var e = e || window.event;
				var tgt = e.target || e.srcElement;
				window.status=$(tgt).attr("title");
			});
			el.mouseout(function() {
				window.status="";
			});
		}
	});

	// Permite la transparencia en los iframes dentro de ie
	if($.browser.msie){
		$("iframe").each(function(i) {
			$(this).attr("allowtransparency","true");
		});
	}

	// Inicializa shadowbox en todas las páginas
	if (typeof(Shadowbox)!="undefined"){
		Shadowbox.init({
			animate: true,
			animateFade: true,
			animSequence:"sync", // "wh", "hw", "sync"
			flvPlayer: "../app_movies/script_flvplayer.swf",
			modal:false,
			overlayColor: "#000",
			overlayOpacity: 0.8,
			flashBgColor: "#000000",
			autoplayMovies: true,
			showMovieControls: true,
			slideshowDelay: 0,
			resizeDuration: 0.5,
			fadeDuration: 0.5,
			displayNav: true,
			continuous: false,
			displayCounter: true,
			counterType: "default", // skip
			counterLimit: 10,
			viewportPadding: 20,
			handleOversize: "resize", // none, resize, drag
			handleException: handleShadowboxException,
			handleUnsupported:"link", // "remove"
			initialHeight: 140,
			initialWidth: 280,
			enableKeys: true,
			onOpen: null,
			onFinish: null,
			onChange: null,
			onClose: null,
			skipSetup: false, // Salta el escaneo de tags
			errors: null
		});
	}
});