// JavaScript Document
function ClassGeneral()
{
	this.navign = new ClassNavigator();
	this.boxTemp = null;
	this.layerTrans = null;
	this.pageAction = null;
	this.layer = null;
	this.actionButton = null;
	this.status = false;
	this.ajaxExec = null;
	this.vTimer = null;
	var ajax = null;
	this.scrollPage = function()
	{
		/* pagina sin XHTML*/
		//document.body.clientHeight
		
		/* pagina en XHTML*/
		if (this.navign._NAV==3)
				return document.body.scrollTop;
		else
				return window.document.documentElement.scrollTop;
	}

	this.setOpacity = function (laye,value)
	{
		var layer = document.getElementById(laye);
		if (value>100)
			value=100; 
		else
		if (value<0)
			value=0;
		if (this.navign._NAV==1)
			layer.style.filter = 'alpha(opacity='+(value)+')';					
		else
			layer.style.opacity = value/100;			
	
	}
		
	this.effectFade = function (layer,value)
	{
		this.setOpacity(layer,value);
		value=value+20;
		if (value<=100)
			window.setTimeout('ObjGen.effectFade("'+layer+'",'+value+')',30);
	}

	this.windowWidth = function()
	{
		/* pagina sin XHTML*/
		//return parseInt(document.body.clientWidth);
		
		/* pagina en XHTML*/
		//window.innerWidth; -->por si hubiera problemas cn explorer
		/*if (this.navign._NAV==3)
				return parseInt(document.body.clientWidth);
		else*/
				return parseInt(document.documentElement.clientWidth);			
	}
	
	this.windowHeight = function()
	{
		/* pagina sin XHTML*/
		//return parseInt(document.body.clientHeight);
		
		/* pagina en XHTML*/
		//window.innerHeight; -->por si hubiera problemas cn explorer
		/*if (this.navign._NAV==3)
				return parseInt(document.body.clientHeight);
		else*/
				return parseInt(document.documentElement.clientHeight);				
	}

	this.staticOpacity = function(id)
	{
		var temp_EFECT = null;
		var _STATIC= new Array();
		_STATIC[0]=new Array();
		_STATIC[0]['layer']=document.getElementById(id).style;
		_STATIC[0]['opacity']=60;		
		temp_EFECT= new ClassOpacity(_STATIC,null,null,null);
	}
	
	this.createOpacity = function()
	{
		var temLay = document.createElement('div');
		temLay.id='capTrans';
		document.body.appendChild(temLay);
		this.changeClass('capTrans','layerTrans');
		document.getElementById('capTrans').style.position='absolute';
		//this.staticOpacity('capTrans');
		this.setOpacity('capTrans',60);
		this.resizeLayer('capTrans','contenido');
		
	}
	
	this.layerLoading = function()
	{
		this.createOpacity();
		temLay = document.createElement('div');
		temLay.id='boxTemp';
		this.boxTemp = temLay.id;
		temLay.innerHTML = '<center><img style="cursor:pointer" onclick="ObjGen.docSelects(\'visible\');ObjGen.deleteBox();" src="/img/action.gif"><br><u style="font-size:10px; cursor:pointer;color:#ffffff;" onclick="ObjGen.docSelects(\'visible\');ObjGen.deleteBox();">Cancel</u></center>';
		document.body.appendChild(temLay);
		this.changeClass(temLay.id,'layerTrans2');
		this.scrollTopLeft('boxTemp');		
	}
	
	this.createBox = function(value)
	{		
		var act2 = '';
		this.deleteBox();
		this.createOpacity();
		temLay = document.createElement('div');
		temLay.id='boxTemp';
		if (this.actionButton!=null)
				act2 = 'ObjGen.actionButton();';
		temLay.innerHTML = '<div class="errTit">'+textes[0]+'</div><div class="errTxt">'+value+'</div><center><button class="btn1" onClick="ObjGen.docSelects(\'visible\');'+act2+'ObjGen.deleteBox();" style="width:100px" type="button">'+textes[1]+'</button></center>';
		document.body.appendChild(temLay);
		this.changeClass(temLay.id,'errorBoxAjx');
		//document.getElementById(temLay.id).style.position='absolute';
		//document.getElementById(temLay.id).style.zIndex='21';
		temLay.style.display='none';
		this.effectFade(temLay.id,0);
		temLay.style.display='block';			
		this.scrollTopLeft('boxTemp');
	}

	this.createBoxAjax = function(value)
	{		
		var act2 = '';
		this.deleteBox();
		this.createOpacity();
		temLay = document.createElement('div');
		temLay.id='boxTemp';
		if (this.actionButton!=null)
				act2 = 'ObjGen.actionButton();';
		temLay.innerHTML = value;
		document.body.appendChild(temLay);
		this.changeClass(temLay.id,'errorBoxAjx');
		temLay.style.display='none';
		this.effectFade(temLay.id,0);
		temLay.style.display='block';			
		this.scrollTopLeft('boxTemp');
	}

	this.createBoxSimple = function(value)
	{		
		var act2 = '';
		this.deleteBox();
		this.createOpacity();
		temLay = document.createElement('div');
		temLay.id='boxTemp';
		if (this.actionButton!=null)
				act2 = 'ObjGen.actionButton();';
		temLay.innerHTML = value;
		temLay.style.position = 'absolute';
		temLay.style.color='#ffffff';
		temLay.style.zIndex='25';
		document.body.appendChild(temLay);
		this.scrollTopLeft('boxTemp');
	}

	this.deleteBox = function()
	{
		try{
		document.body.removeChild(document.getElementById('capTrans'));
		document.body.removeChild(document.getElementById('boxTemp'));
		}
		catch (err)
		{};
	}
	
	this.scrollLayer = function (id)
	{
		document.getElementById(id).style.top = parseInt((this.windowHeight()/2)+this.scrollPage())+'px';
	}

	
	this.scrollTopLeft = function (id)
	{
		try{
		document.getElementById(id).style.top = (parseInt((this.windowHeight()/2)+this.scrollPage())-(parseInt(document.getElementById(id).clientHeight)/2))+'px';		
		document.getElementById(id).style.left = (parseInt((this.windowWidth()/2) - (parseInt(document.getElementById(id).clientWidth)/2)))+'px';
		}
		catch (err){}
	}

	this.scrollLayer2 = function (id)
	{
		document.getElementById(id).style.top = parseInt(this.scrollPage())+'px';
	}
	
	this.layerVisibility = function(layer,property)
	{
		document.getElementById(layer).style.visibility=property;
	}

	this.layerDisplay = function(layer,property)
	{
		document.getElementById(layer).style.display=property;
	}

	this.changeClass = function(id,clase)
	{
		document.getElementById(id).setAttribute('class',clase); 
		document.getElementById(id).setAttribute('className',clase); 
		/*if (this.navign._NAV==1)
			document.getElementById(id).setAttribute('className',clase); 
		else
			document.getElementById(id).setAttribute('class',clase); */
	}
	
	this.resizeLayer = function(layer,ancla)
	{
		
		if (ancla!=null)
		{
			document.getElementById(layer).style.height = (parseInt(document.getElementById(ancla).clientHeight))+'px';
		}
		else
		document.getElementById(layer).style.height = this.windowHeight()+'px';
		document.getElementById(layer).style.width = this.windowWidth()+'px';
	}
	

	this.checkRow = function(id)
	{
		if (document.getElementById(id).checked==true)
				document.getElementById(id).checked=false;
		else
				document.getElementById(id).checked=true;
	}

	this.checkRow2 = function(id,value)
	{
		document.getElementById(id).checked=value;
	}


	this.selectRow = function(id)
	{
		if (this.navign._NAV==1)
			_value = document.getElementById(id).getAttribute('className'); 
		else
			_value = document.getElementById(id).getAttribute('class'); 
		
		if (_value=='selOff')
				this.changeClass(id,'selOn');
		else
				this.changeClass(id,'selOff');
	}
	
	this.checkAll = function(pre,elements,type)
	{
		for (i=0;i<elements;i++)
		{
			this.checkRow2(pre+i,type);
		}		
	}
	
	this.selectAll = function (pre,elements,type)
	{
		if (type==true)
				{
					for (i=0;i<elements;i++)
					{
						this.changeClass(pre+i,'selOn');
					}
				}
		else
				{
					for (i=0;i<elements;i++)
					{
						this.changeClass(pre+i,'selOff');
					}
				}		
		
	}
	
	this.selectExe = function (id,elements)
	{
		this.selectExe(null,elements,document.getElementBiId(id).checked);
	}
	
	this.hideSelects2 = function (formu,value)
	{
		
		try
		{
		for (i=0;i<document.forms[formu].elements.length;i++) 
     {
		 	 if (formu.elements[i].type == "select-one"){
			 		if (value!=null)
					formu.elements[i].style.visibility= value;
					else
					if (formu.elements[i].style.visibility=='hidden')
			 		{formu.elements[i].style.visibility= 'visible';}
					else formu.elements[i].style.visibility='hidden';
			 }
		 }
		}
		catch (err)
		{
		}
	}


	this.hideSelects = function (formu,value)
	{
		
		try
		{
		for (i=0;i<formu.elements.length;i++) 
     {
		 	 if (formu.elements[i].type == "select-one"){
			 		if (value!=null)
					formu.elements[i].style.visibility= value;
					else
					if (formu.elements[i].style.visibility=='hidden')
			 		{formu.elements[i].style.visibility= 'visible';}
					else formu.elements[i].style.visibility='hidden';
			 }
		 }
		}
		catch (err)
		{
		}
	}
	
	this.docSelects = function (value)
	{
		for (i=0;i<document.forms.length;i++)
			{
				for (j=0;j<document.forms[i].length;j++)
					{
						if (document.forms[i].elements[j].type == "select-one")
								{
								if (value!=null)
								document.forms[i].elements[j].style.visibility= value;
								else
								if (document.forms[i].elements[j].style.visibility=='hidden')
								{document.forms[i].elements[j].style.visibility= 'visible';}
								else document.forms[i].elements[j].style.visibility='hidden';
						 		}						
					}
			}
	}
	
	this.buildValues = function (formu)
	{
		var cadValues='';
		for (i=0;i<formu.elements.length;i++) 
     { 	
		 	 if (formu.elements[i].type == "checkbox") 
			 		{if (formu.elements[i].checked==true)
							cadValues=cadValues+'&'+formu.elements[i].name+'='+formu.elements[i].value;}
				else
					cadValues=cadValues+'&'+formu.elements[i].name+'='+formu.elements[i].value;
		 }
		 return cadValues;
	}
	
	this.setStyleMouse = function(id,background,color)
	{
		if (id != sele)
		{
		document.getElementById(id).style.background=background;
		document.getElementById(id).style.color=color;
		}
	}

	this.setStyleMouse2 = function(id,background,color)
	{
		document.getElementById(id).style.background=background;
		document.getElementById(id).style.color=color;
	}

	this.layerVisible2 = function (id)
	{
		document.getElementById('T'+sele).style.display='none';
		document.getElementById(id).style.display='block';
	}

	this.layerVisible2 = function (id)
	{
		if('T'+sele!=id)
			document.getElementById('T'+sele).style.display='none';
		if (document.getElementById(id).style.display=='block')
				document.getElementById(id).style.display='none';
		else
				document.getElementById(id).style.display='block';
	}
	
	this.layerHTML = function(value)
	{
		document.getElementById(this.layer).innerHTML=value
	}
	
	this.timerStatus = function(execStr)
	{
		//alert(execStr);
		if (this.status==true && this.ajaxExec!=null)
				{
					ajax.abort();
					try
					{						
						//alert(this.ajaxExec);
						eval(this.ajaxExec);}
					catch(err)
					{}
				}
	}
	
	this.divChecked = function (id)
	{
		if (document.getElementById(id).className=='chDe')
				{
					this.changeClass(id,'chOk');
					this.ajaxForm(null,'type=saveVar&var='+id+'&value=s',null,null);
				}
		else	
				{
					this.changeClass(id,'chDe');
					this.ajaxForm(null,'type=saveVar&var='+id+'&value=',null,null);
				}
	}
	
	this.preLoadHTML = function(layer)
	{
		layer.innerHTML='<table height="'+parseInt(layer.style.height)+'" align="center"><tr><td valign="middle"><img src="/imgs/action.gif"></td></tr></table>';
	}
	
	this.ajaxForm = function (formu,type,layer,layer_lo)
	{
		var values='';

		var formName = 'null';
		if (formu!=null)
				{
					formName = formu.name;
					values = this.buildValues(formu);
				}
		values = type+values;

		//para montar el sistema de comprobacion de la respuesta ajax , por si se cuelga 
		if (layer_lo!=null)
				{
					window.clearTimeout(this.vTimer);
					this.vTimer = null;
					this.status=true;
					if (layer!=null)
							this.ajaxExec = 'ObjGen.ajaxForm('+formName+',\''+type+'\',\''+layer+'\','+layer_lo+');';
					else
							this.ajaxExec = 'ObjGen.ajaxForm('+formName+',\''+type+'\',null,'+layer_lo+');'
					this.vTimer = window.setTimeout('ObjGen.timerStatus();',4000);
				
					this.layerLoading();
				}
				
		if (this.pageAction!=null)
				/*var*/ ajax = new libreriaAJAX(values,this.pageAction);
		else
				/*var*/ ajax = new libreriaAJAX(values,'../../includes/php/response/action_cal.php');
			ajax.setaction_(function (texto)
			{
				var trozos=new Array();
				trozos=texto.split("~");	
				if (trozos.length>1 && trozos[0]=='1')
						{
							document.getElementById(layer).innerHTML = trozos[1];
							setTimeout("ObjGen.layerVisibility('"+layer_lo+"','hidden')",1500);		
						}
				else
				if (trozos.length>1 && trozos[0]=='2')
						{														
							setTimeout("ObjGen.deleteBox();eval('"+trozos[1]+"');",1500);		
						}
				else
				if (trozos.length>1)
						{							
							ObjGen.deleteBox();
							ObjGen.status =false;
							
							if (layer!=null && trozos[1]!=' ')
								{
									//para todos los procesos que crea la capa de loading y que ademas quiero hacer efecto fade sobre contenido 
									if (layer_lo!=null && layer_lo==1)
									{
										OBJ_TIT[2].innerHTML= trozos[1];
										OBJ_TIT[2].layerHTML= layer;
										OBJ_TIT[2].setEffect1(2,layer,'');
									}
									else
									document.getElementById(layer).innerHTML = trozos[1];//sobre todo es para el caso de que se genera las habitaciones
									//document.getElementById(layer).innerHTML = trozos[1];
								}	
							eval(trozos[0]);
								
							
						}
				else
				if (layer!=null)
						{							
							document.getElementById(layer).innerHTML = texto;
						}
				/*else
				if (layer_lo!=null)
						setTimeout("ObjGen.layerVisibility('"+layer_lo+"','hidden')",1500);	*/
				
			}
			);
		/*if (layer_lo!=null)
			{
				this.layerVisibility(layer_lo,'visible');
			}*/
		ajax.ejecution();
	}
	
}



