//
var OK = {ok:true};
var CANCEL = {cancel:true};
var OKCANCEL = {ok:true, cancel:true};
var YESNO = {yes:true, no:true};
var YESNOCANCEL = {yes:true, no:true, cancel:true};
var btns;

var zIndexGlobal = 500;

function cargarBotones(){
	btns = {ok:"OK",cancel:"Cancelar",yes:"OK",no:"NO"};
}

function Browser() {

	
  var ua, s, i;
  
  this.isIE    = false;
  this.isNS    = false;
  this.version = null;

  ua = navigator.userAgent;

  s = "MSIE";
  if ((i = ua.indexOf(s)) >= 0) {
    this.isIE = true;
    this.version = parseFloat(ua.substr(i + s.length));
    return;
  }

  s = "Netscape6/";
  if ((i = ua.indexOf(s)) >= 0) {
    this.isNS = true;
    this.version = parseFloat(ua.substr(i + s.length));
    return;
  }

  // Treat any other "Gecko" browser as NS 6.1.

  s = "Gecko";
  if ((i = ua.indexOf(s)) >= 0) {
    this.isNS = true;
    this.version = 6.1;
    return;
  }
}

var browser = new Browser();

//Para saber donde está el cursor
var _x;
var _y;
var IE = document.all?true:false;
if (!IE) document.captureEvents(Event.MOUSEMOVE)
document.onmousemove = getMouseXY;
var tempX = 0;
var tempY = 0;

var ua = navigator.userAgent.toLowerCase();

var isStrict = document.compatMode == "CSS1Compat",
    isOpera = ua.indexOf("opera") > -1,
    isSafari = (/webkit|khtml/).test(ua),
    isSafari3 = isSafari && ua.indexOf('webkit/5') != -1,
    isIE = !isOpera && ua.indexOf("msie") > -1,
    isIE7 = !isOpera && ua.indexOf("msie 7") > -1,
    isGecko = !isSafari && ua.indexOf("gecko") > -1,
    isGecko3 = !isSafari && ua.indexOf("rv:1.9") > -1,
    isBorderBox = isIE && !isStrict,
    isWindows = (ua.indexOf("windows") != -1 || ua.indexOf("win32") != -1),
    isMac = (ua.indexOf("macintosh") != -1 || ua.indexOf("mac os x") != -1),
    isAir = (ua.indexOf("adobeair") != -1),
    isLinux = (ua.indexOf("linux") != -1),
    isSecure = window.location.href.toLowerCase().indexOf("https") === 0;



function getMouseXY(e) {
	if (IE) { // grab the x-y pos.s if browser is IE
		tempX = event.clientX + document.body.scrollLeft;
		tempY = event.clientY + document.body.scrollTop;
	} else {  // grab the x-y pos.s if browser is NS
		tempX = e.pageX;
		tempY = e.pageY;
	}  
	if (tempX < 0){tempX = 0;}
	if (tempY < 0){tempY = 0;}  
	_x = tempX;
	_y = tempY;
	return true;
}
//Fin posición cursor


function crearAlert(parametros) {
	
	var ua = navigator.userAgent;
	
	//var params = JSON.parse(parametros);
	var IE = document.all?true:false;
	
	
	
	var divTrans = $("<div></div>").attr('id','divTranslucido');
	divTrans.appendTo($(document.body));
	$("#divTranslucido").attr("class","translucido");
	$("#divTranslucido").css("z-index",zIndexGlobal);
	$("#divTranslucido").css("height",$(document).height());
	
	
	var divAlert = $("<div></div>").attr('id','divAlert');
	divAlert.appendTo(document.body);
	//$("#divAlert").css({'width':params.width+'px','z-index':'10000'});
	$("#divAlert").css({'width':parametros["width"]+'px','z-index':$("#divTranslucido").css("z-index") + 1});
	$("#divAlert").attr('class','ventana_alert');

	var divTitVentanaAlert = $("<div></div>").attr('id','divTitVentanaAlert');
	divTitVentanaAlert.appendTo(divAlert);
	//$("#divTitVentanaAlert").html(params.titulo);
	$("#divTitVentanaAlert").html(parametros["titulo"]);
	$("#divTitVentanaAlert").attr({"class":"titulo_ventana","onmousedown":"dragStart(event,'divAlert')"});
	//$("#divTitVentanaAlert").attr({"class":"titulo_ventana"});
	
	$("#divTitVentanaAlert").mousedown(function () { 
		  $("#divSombraAlert").remove();
		  if(ua.indexOf('Firefox')==-1){ 
		  	if (!event) var event = window.event;
		  	dragStart(event, 'divAlert');
		  }	      	       
	    });

	$("#divTitVentanaAlert").mouseup(function () { 
		crearSombra('Alert',$("#divAlert").css('top'),$("#divAlert").css('left'),$("#divAlert").width(),$("#divAlert").height(),$("#divAlert").css('z-index'));
	});


	var divVentanaAlert = $("<div></div>").attr('id','divVentanaAlert');
	divVentanaAlert.appendTo(divAlert);
	$("#divVentanaAlert").attr('class','ventana');
	
	if(IE) {
		$("#divVentanaAlert").css({'z-index':$("#divTranslucido").css("z-index") + 2,'padding':'7px','width':$("#divAlert").width()-16});
	} else if(isSafari3) {
		$("#divVentanaAlert").css({'z-index':$("#divTranslucido").css("z-index") + 2,'padding':'7px','width':$("#divAlert").width()-14});
	} else {
		$("#divVentanaAlert").css({'z-index':$("#divTranslucido").css("z-index") + 2,'padding':'7px','width':$("#divAlert").width()-14});
	}
	
	//$("#divVentanaAlert").html(params.mensaje);

	var divTextoAlert = $("<div></div>").attr('id','divTextoAlert');
	divTextoAlert.appendTo(divVentanaAlert);
	$("#divTextoAlert").attr('class','contenido_ventana');
	$("#divTextoAlert").css({'z-index':$("#divTranslucido").css("z-index") + 2,'margin':'0px'});
	//$("#divTextoAlert").html(params.mensaje);
	$("#divTextoAlert").html(parametros["mensaje"]);
	

//Los botones los coloco dentro de una tabla

	var divBotones = $("<div></div>").attr('id','divBotones');
	divBotones.appendTo(divAlert);
	$("#divBotones").attr('class','ventana');
	$("#divBotones").css({'width':'100%','height':'35px','text-align':'center'});

	var tblBotones = $("<table></table>").attr('id','tblBotones');
	tblBotones.appendTo(divBotones);
	$("#tblBotones").attr({'cellspacing':'0','cellpadding':'0','border':'0'});
	$("#tblBotones").css({'margin':'0 auto'});
	

		
	var tbdyBotones = $("<tbody></tbody>");
	tbdyBotones.appendTo(tblBotones);

	var trBotones = $("<tr></tr>");
	trBotones.appendTo(tbdyBotones);
	
	var tdBtn
	for(var b in parametros["botones"]) {
		tdBtn = $("<td></td>").attr('id','tdBtn'+b);
		tdBtn.appendTo(trBotones);
		$("#tdBtn"+b).css({'padding':'3px'});		
		if(parametros["extraParams"]==undefined) {
			parametros["extraParams"] = '';
		}
		crearBoton(tdBtn, 'btn'+b, btns[b], parametros["funcion"] + '(btns["'+b+'"]'+parametros["extraParams"]+')');		
	}
	
	
	/*
	for(var k in btns){
		for(var b in parametros["botones"]) {
			if(b[k]){
				alert(btns[k]);
	            //btns[k].show();
	        }else{
	           
	        }	
		}                
    }	

	var tdBtnAceptar = $("<td></td>").attr('id','tdBtnAceptar');
	tdBtnAceptar.appendTo(trBotones);
	$("#tdBtnAceptar").css({'padding':'3px'});
	crearBoton(tdBtnAceptar, 'btnAceptar', 'Aceptar', parametros["funcion"] + '(btns["ok"])');
	
	var tdBtnCancelar = $("<td></td>").attr('id','tdBtnCancelar');
	tdBtnCancelar.appendTo(trBotones);
	$("#tdBtnCancelar").css({'padding':'3px'});
	crearBoton(tdBtnCancelar, 'btnCancelar', 'Cancelar',parametros["funcion"] + '(btns["cancel"])');
	*/
//Fin agregado botones	

	




//Centro la ventana 	

    var data=getWindowData();
  
	$("#divAlert").css('left', data[0]/2+data[2]-(parseInt($("#divAlert").width())/2 + 100)+'px');
	$("#divAlert").css('top',  data[1]/2+data[3]-parseInt($('#divAlert').height())/2+'px');
	
//Creo un efecto de sombra debajo de la ventana
	crearSombra('Alert',$("#divAlert").css('top'),$("#divAlert").css('left'),$("#divAlert").width(),$("#divAlert").height(),$("#divAlert").css('z-index'));
	
}

function getWindowData(){
    var widthViewport,heightViewport,xScroll,yScroll,widthTotal,heightTotal;
    if (typeof window.innerWidth != 'undefined'){
        widthViewport= window.innerWidth;
        heightViewport= window.innerHeight;
    }else if(typeof document.documentElement != 'undefined' && typeof document.documentElement.clientWidth !='undefined' && document.documentElement.clientWidth != 0){
        widthViewport=document.documentElement.clientWidth;
        heightViewport=document.documentElement.clientHeight;
    }else{
        widthViewport= document.getElementsByTagName('body')[0].clientWidth;
        heightViewport=document.getElementsByTagName('body')[0].clientHeight;
    }
    xScroll=self.pageXOffset || (document.documentElement.scrollLeft+document.body.scrollLeft);
    yScroll=self.pageYOffset || (document.documentElement.scrollTop+document.body.scrollTop);
    widthTotal=Math.max(document.documentElement.scrollWidth,document.body.scrollWidth,widthViewport);
    heightTotal=Math.max(document.documentElement.scrollHeight,document.body.scrollHeight,heightViewport);
    return [widthViewport,heightViewport,xScroll,yScroll,widthTotal,heightTotal];
}


function crearSombra(nomVentana, top, left, width, height, zindex) {

	var IE = document.all?true:false;
	/*
	alert('nomVentana: ' + nomVentana + '\n' + 
		  'top: ' + top + '\n' +
		  'left: ' + left + '\n' + 
		  'width:' + width + '\n' +
		  'height' + height + '\n' +
		  'zindex' + zindex + '\n');
	*/
	var sobreborde = 15;

	if(!IE) {
		top = top.substring(0,top.indexOf('px'));
		top = top -4;

		
		left = left.substring(0,left.indexOf('px'));
		left = left - 5;

		width = width + 15;
		height = height + 12;
		
	} else {
		
		top = top.substring(0,top.indexOf('px'));
		top = top - 6;
			
		left = left.substring(0,left.indexOf('px'));
		left = left -7;
		
		width = width + 5;
		height = height + 5;
		
	}
	var zindexaux = zindex - 1;

	
	$('#divSombra' + nomVentana).remove();
	
	
	var divSombraError = $("<div></div>").attr('id','divSombra' + nomVentana);
	divSombraError.appendTo(document.body);
	$("#divSombra" + nomVentana).css({'top':top, 'left':left,'display':'block','width':width, 'height':height, 'z-index':zindexaux});
	
	if (!IE) {
		$("#divSombra" + nomVentana).attr("class","x-shadow");
	} else {
		$("#divSombra" + nomVentana).attr("class","x-ie-shadow");
		$("#divSombra" + nomVentana).css({'filter':'progid:DXImageTransform.Microsoft.alpha(opacity=50) progid:DXImageTransform.Microsoft.Blur(pixelradius=4)'});
	}


	var xst = $("<div></div>").attr('id','divse_xst' + nomVentana);
	xst.appendTo(divSombraError);
	$("#divse_xst" + nomVentana).attr("class","xst");

	var xstl = $("<div></div>").attr('id','divse_xstl' + nomVentana);
	xstl.appendTo(xst);
	$("#divse_xstl" + nomVentana).attr("class","xstl");

	var xstc = $("<div></div>").attr('id','divse_xstc' + nomVentana);
	xstc.appendTo(xst);
	$("#divse_xstc" + nomVentana).css({'width':width-sobreborde});
	$("#divse_xstc" + nomVentana).attr("class","xstc");

	var xstr = $("<div></div>").attr('id','divse_xstr' + nomVentana);
	xstr.appendTo(xst);
	$("#divse_xstr" + nomVentana).attr("class","xstr");




	var xsc = $("<div></div>").attr('id','divse_xsc' + nomVentana);
	xsc.appendTo(divSombraError);
	$("#divse_xsc" + nomVentana).css({'height':height-sobreborde});
	$("#divse_xsc" + nomVentana).attr("class","xsc");

	var xscl = $("<div></div>").attr('id','divse_xscl' + nomVentana);
	xscl.appendTo(xsc);
	$("#divse_xscl" + nomVentana).attr("class","xsml");

	var xscc = $("<div></div>").attr('id','divse_xscc' + nomVentana);
	xscc.appendTo(xsc);
	$("#divse_xscc" + nomVentana).css({'width':width-sobreborde});
	$("#divse_xscc" + nomVentana).attr("class","xsmc");

	var xscr = $("<div></div>").attr('id','divse_xscr' + nomVentana);
	xscr.appendTo(xsc);
	$("#divse_xscr" + nomVentana).attr("class","xsmr");




	var xsb = $("<div></div>").attr('id','divse_xsb' + nomVentana);
	xsb.appendTo(divSombraError);
	$("#divse_xsb" + nomVentana).attr("class","xsb");

	var xsbl = $("<div></div>").attr('id','divse_xsbl' + nomVentana);
	xsbl.appendTo(xsb);
	$("#divse_xsbl" + nomVentana).attr("class","xsbl");

	var xsbc = $("<div></div>").attr('id','divse_xsbc' + nomVentana);
	xsbc.appendTo(xsb);
	$("#divse_xsbc" + nomVentana).css({'width':width-sobreborde});
	$("#divse_xsbc" + nomVentana).attr("class","xsbc");

	var xsbr = $("<div></div>").attr('id','divse_xsbr' + nomVentana);
	xsbr.appendTo(xsb);
	$("#divse_xsbr" + nomVentana).attr("class","xsbr");
	
}


function crearBoton(contenedor, nombreBoton, texto, funcionAsociada) {
	
	var IE = document.all?true:false;
	
	var tblBoton = $("<table></table>").attr('id',nombreBoton);
	tblBoton.appendTo(contenedor);
	$("#" + nombreBoton).attr({'class':'x-btn-wrap x-btn','cellspacing':'0','cellpadding':'0','border':'0'});

	$("#"+nombreBoton).hover(function () {
	      $(this).addClass("x-btn-over");
	    }, function () {
	      $(this).removeClass("x-btn-over");
	    });

	$("#"+nombreBoton).mouseup(function(){
	      $(this).removeClass('x-btn-click');
	    }).mousedown(function(){
	      $(this).addClass('x-btn-click');
	    });
    
	$("#"+nombreBoton).click(function () {
		  eval(funcionAsociada);		  
	    });	    
		
	var tbdyBoton = $("<tbody></tbody>");
	tbdyBoton.appendTo(tblBoton);

	var trBoton = $("<tr></tr>");
	trBoton.appendTo(tbdyBoton);

	var tdBtnLeft = $("<td></td>").attr('id','td'+ nombreBoton +'Left');
	tdBtnLeft.appendTo(trBoton);
	$("#td"+nombreBoton+"Left").attr('class','x-btn-left');
	
	if (IE) {
		$("#td"+nombreBoton+"Left").css('width','1px');
	}

	var tdBtnCenter = $("<td></td>").attr('id','td'+nombreBoton+'Center');
	tdBtnCenter.appendTo(trBoton);
	$("#td"+nombreBoton+"Center").attr('class','x-btn-center');
	$("#td"+nombreBoton+"Center").css({'width':'80px'});
	$("#td"+nombreBoton+"Center").html('<a href="#">' + texto + '</a>');

	var tdBtnRight = $("<td></td>").attr('id','td'+nombreBoton+'Right');;
	tdBtnRight.appendTo(trBoton);	
	$("#td"+nombreBoton+"Right").attr('class','x-btn-right');


}

function hoverBoton(boton) {
	if(arguments[1] != undefined) {
		if(arguments[1]) {
			boton.className += " btn-over";
		}			
	} else {
		boton.className += " btn-over";
	}
}

function outBoton(boton) {
	boton.className = boton.className.replace("btn-over", " ");
}

function crearVentanaErrores(contenedor, titulo, errores, zindex) {
	
	var height;
	var width;
	
	if(screen.width > 1024) {
		height = '850px';
		width = '1350px';	
	} else {
		height = '600px';
		width = '800px';
	}
	
	
	var valTop = height.substring(0,height.indexOf('px')) - 300;
	var valLeft = width.substring(0,width.indexOf('px')) - 300;
	
	
	
	/*Cuadro con errores*/
//	onmousedown="$('#divSombramsg-div-errores').remove(); dragStart(event, 'msg-div-errores');" onmouseup="actualizarSombra('msg-div-errores');"
	var divbox = $("<div></div>").attr({'id':'msg-div-errores','class':'x-box','style':'position:absolute;display:inline;z-index:'+zindex + ';top:'+valTop + 'px;left:'+valLeft +'px'});
	divbox.appendTo($("#"+contenedor));
	
	/* Top del cuadro */
	var div_tl = $("<div></div>").attr('class','x-box-tl');
	div_tl.appendTo(divbox);
	
	var div_tr = $("<div></div>").attr('class','x-box-tr');
	div_tr.appendTo(div_tl);
	
	var div_tc = $("<div></div>").attr('class','x-box-tc');
	div_tc.appendTo(div_tr);

	
	
	/* Medio del cuadro */
	var div_ml = $("<div></div>").attr('class','x-box-ml');
	div_ml.appendTo(divbox);
	
	var div_mr = $("<div></div>").attr('class','x-box-mr');
	div_mr.appendTo(div_ml);
	
	var div_mc = $("<div></div>").attr('class','x-box-mc');
	div_mc.appendTo(div_mr);
	
	/*Titulo del cuadro*/
	var h3_box = $("<h3></h3>").css({'background':'transparent'}).html(titulo);
	h3_box.appendTo(div_mc);
	
	var divcerrar = $('<div id="ext-gen61" title="Cerrar" onclick=\'$("#divSombramsg-div-errores").remove(); $("#msg-div-errores").remove();\'  style="background-image: url(/Timex/images/close.gif);float:right; display:block; height:15px; margin-left:2px; overflow:hidden; width:15px;"></div>');
	divcerrar.appendTo(div_mc);
	
	/*Errores*/
	var div_errores = $("<div></div>").html(errores);
	div_errores.appendTo(div_mc);
	
	
	/*Parte inferior del cuadro*/
	var div_bl = $("<div></div>").attr('class','x-box-bl');
	div_bl.appendTo(divbox);
	
	var div_br = $("<div></div>").attr('class','x-box-br');
	div_br.appendTo(div_bl);
	
	var div_bc = $("<div></div>").attr('class','x-box-bc');
	div_bc.appendTo(div_br);
	
	//$("#msg-div-errores").slideDown("slow");
	$("#msg-div-errores").show('drop',{ direction: "down" }, 'fast',function () {$("#msg-div-errores").show('shake',{times:1,distance:10,direction:"down"},'fast');});//,options,500,callback);
	
		
	$("#msg-div-errores").mouseup(function(){
		actualizarSombra('msg-div-errores');
    }).mousedown(function(){
    	$('#divSombramsg-div-errores').remove(); 
    	if(ua.indexOf('firefox')==-1){ 
    	  	if (!event) var event = window.event;
    	  	dragStart(event, 'msg-div-errores');
    	}	    	
    });
	
}

function alertResult(btn) {
	//alert('Acepte: ' + btn);
	$("#divAlert").remove(); 
    $("#divSombraAlert").remove();
    $("#divTranslucido").remove();
}


// Global object to hold drag information.

var dragObj = new Object();
dragObj.zIndex = 0;

function dragStart(event, id) {
	
  var el;
  var x, y;

  // If an element id was given, find it. Otherwise use the element being
  // clicked on.

  if (id)
    dragObj.elNode = document.getElementById(id);
  else {
    if (browser.isIE)
      dragObj.elNode = window.event.srcElement;
    if (browser.isNS)
      dragObj.elNode = event.target;

    // If this is a text node, use its parent element.

    if (dragObj.elNode.nodeType == 3)
      dragObj.elNode = dragObj.elNode.parentNode;
  }

  // Get cursor position with respect to the page.

  if (browser.isIE) {
    x = window.event.clientX + document.documentElement.scrollLeft
      + document.body.scrollLeft;
    y = window.event.clientY + document.documentElement.scrollTop
      + document.body.scrollTop;
  }
  if (browser.isNS) {
    x = event.clientX + window.scrollX;
    y = event.clientY + window.scrollY;
  }

  // Save starting positions of cursor and element.

  dragObj.cursorStartX = x;
  dragObj.cursorStartY = y;
  dragObj.elStartLeft  = parseInt(dragObj.elNode.style.left, 10);
  dragObj.elStartTop   = parseInt(dragObj.elNode.style.top,  10);
  
  objLeft = parseInt($("#" + dragObj.elNode.id).css('left').substring(0, $("#" + dragObj.elNode.id).css('left').length-2));
  objTop =  parseInt($("#" + dragObj.elNode.id).css('top').substring(0, $("#" + dragObj.elNode.id).css('top').length-2));

  if (isNaN(dragObj.elStartLeft))  dragObj.elStartLeft = objLeft;
  if (isNaN(dragObj.elStartTop))  dragObj.elStartTop  = objTop;
  
  // Update element's z-index.
  
  //zIndexGlobal = parseInt($("#" + dragObj.elNode.id).css('z-index')) + 1;
  zIndexGlobal = zIndexGlobal +1;
  dragObj.elNode.style.zIndex = zIndexGlobal;
  
  //$("#divTranslucidoGeneral").css({'z-index':$("#" + dragObj.elNode.id).css('z-index')-1});
  
  //$("#" + dragObj.elNode.id).css({'z-index':$("#" + dragObj.elNode.id).css('z-index')+1});  
  
  //dragObj.elNode.style.zIndex = ++dragObj.zIndex;
  //this.el.setStyle("z-index", this.zIndex || parseInt(target.getStyle("z-index"), 10)-1);

  // Capture mousemove and mouseup events on the page.

  if (browser.isIE) {
    document.attachEvent("onmousemove", dragGo);
    document.attachEvent("onmouseup",	dragStop);
    window.event.cancelBubble = true;
    window.event.returnValue = false;
  }
  if (browser.isNS) {
    document.addEventListener("mousemove", dragGo,   true);
    document.addEventListener("mouseup",   dragStop, true);
    event.preventDefault();
  }
}

function dragGo(event) {

  var x, y;

  // Get cursor position with respect to the page.

  if (browser.isIE) {
    x = window.event.clientX + document.documentElement.scrollLeft
      + document.body.scrollLeft;
    y = window.event.clientY + document.documentElement.scrollTop
      + document.body.scrollTop;
  }
  if (browser.isNS) {
    x = event.clientX + window.scrollX;
    y = event.clientY + window.scrollY;
  }

  // Move drag element by the same amount the cursor has moved.

  dragObj.elNode.style.left = (dragObj.elStartLeft + x - dragObj.cursorStartX) + "px";
  dragObj.elNode.style.top  = (dragObj.elStartTop  + y - dragObj.cursorStartY) + "px";

  if (browser.isIE) {
    window.event.cancelBubble = true;
    window.event.returnValue = false;
  }
  if (browser.isNS)
    event.preventDefault();
}

function dragStop(event) {

  // Stop capturing mousemove and mouseup events.

  if (browser.isIE) {
    document.detachEvent("onmousemove", dragGo);
    document.detachEvent("onmouseup",	dragStop);
  }
  if (browser.isNS) {
    document.removeEventListener("mousemove", dragGo,	true);
    document.removeEventListener("mouseup",   dragStop, true);
  }
}



cargarBotones();



