/*
 *dms javascript library  
 */
function checkDays(year,month)
{
	var days;
	if (month == 2)
	{
		a = year%4;
		
		if(year % 4 == 0)
		{
			days  = 29;
		}
		else
		{
			days = 28;
		}
	}
	else
	{
		if (month == 1 || month == 3 || month == 5 || month == 7 || month == 8 || month == 10 || month == 12)
		{
			days = 31;
		}
		else
		{
			days = 30;
		}
	}
	return days;
}
function correctDate(id)
{
	
	yearControl = document.getElementById(id+"Year");
	monthControl = document.getElementById(id+"Month");
	dayControl = document.getElementById(id+"Day");
	control = document.getElementById(id);
	year = yearControl.value;
	month = monthControl.value;
	days = checkDays(year,month);
	day = dayControl.value;
	if(day>days && month>0)
	{
		dayControl.selectedIndex=days;
		day=days;
	}
	while (year.length < 4) {year = "0" + year;}
	while (month.length < 2) {month = "0" + month;}
	while (day.length < 2) {day = "0" + day;}
	control.value=year+"-"+month+"-"+day;
}
function filterList(name)
{
	var n = name;
	var option;
	var x=0;
	var j=-1;
    var search = document.getElementById(n + "Search");
	var hidden = document.getElementById(n + "Hidden");
    var visible = document.getElementById(n);
	visible.options.length = 0;
    for (x = 0; x < hidden.options.length; x++) {
        var option = hidden.options[x];
		if (hidden.options[x].text.match(new RegExp(search.value, "i")) ||  hidden.options[x].value.match(new RegExp(search.value, "i")) ) {
			j++;
            visible.options[j] = new Option(option.text, option.value, false);
        }
    }
}
function resetList(name)
{
	var hidden = document.getElementById(name + "Hidden");
    var visible = document.getElementById(name);
	var x=0;
	visible.options.length = 0;
	for (x = 0; x < hidden.options.length; x++) {
         visible.options[x] = new Option(hidden.options[x].text, hidden.options[x].value, false);
    }
}

function requestChild(selectElement,request)
{
	var xmlHttp;
	try
	  {
	  // Firefox, Opera 8.0+, Safari
	  xmlHttp=new XMLHttpRequest();
	  }
	catch (e)
	  {
	  // Internet Explorer
	  try
	    {
	    xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
	    }
	  catch (e)
	    {
	    try
	      {
	      xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
	      }
	    catch (e)
	      {
	      alert("Your browser is not supported.");
	      return false;
	      }
	    }
	  }
	  xmlHttp.onreadystatechange=function()
	    {
	    if(xmlHttp.readyState==4)
	      {
			updateChild(selectElement,xmlHttp.responseText);
	      }
	    }
	  xmlHttp.open("GET","index.php"+request,true);
	  xmlHttp.send(null);
	  }
function updateChild(selectElement, response){
	var options = response.split("><");
	selectElement.options.length = 0;
	selectElement.options[0] = new Option("", "", false)
	for (i = 1; i <= options.length; i++) {
		var optionArray;
		optionArray = options[i - 1].split("|");
		if (optionArray[0]!= "" && optionArray[1]!="") {
			selectElement.options[i] = new Option(optionArray[1], optionArray[0], false);
		}
	}
	fireEvent(selectElement,"change");
}
function fireEvent(element,event){
    if (document.createEventObject){ //explorer
        var evt = document.createEventObject();
        return element.fireEvent('on'+event,evt)
    }
    else{ //Lo buenos
        var evt = document.createEvent("HTMLEvents");
        evt.initEvent(event, true, true );
        return !element.dispatchEvent(evt);
    }
}

function ajaxSearch(request, field){
	var xmlHttp;
	try {
        // Firefox, Opera 8.0+, Safari
        xmlHttp = new XMLHttpRequest();
    } 
    catch (e) {
        // Internet Explorer
        try {
            xmlHttp = new ActiveXObject("Msxml2.XMLHTTP");
        } 
        catch (e) {
            try {
                xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
            } 
            catch (e) {
                alert("Your browser is not supported.");
                return false;
            }
        }
    }
    xmlHttp.onreadystatechange = function(){
       
	   	if (xmlHttp.readyState == 4) {
			updateChild(field, xmlHttp.responseText);
	   	}
    }
    xmlHttp.open("GET", request, true);
    xmlHttp.send(null);
}
function ajaxRecord(request,div){
	alert(request);
	var xmlHttp;
    try {
        // Firefox, Opera 8.0+, Safari
        xmlHttp = new XMLHttpRequest();
    } 
    catch (e) {
        // Internet Explorer
        try {
            xmlHttp = new ActiveXObject("Msxml2.XMLHTTP");
        } 
        catch (e) {
            try {
                xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
            } 
            catch (e) {
                alert("Your browser is not supported.");
                return false;
            }
        }
    }
    xmlHttp.onreadystatechange = function(){
		if (xmlHttp.readyState == 4) {
            div.innerHTML = xmlHttp.responseText;
        }
    }
    xmlHttp.open("GET", request, true);
    xmlHttp.send(null);
}
function printdiv(div)
{
	var headstr = "<html><head><title></title></head><body>";
	var footstr = "</body></html>";
	var newstr = document.getElementById(div).innerHTML;
	var oldstr = document.body.innerHTML;
	document.body.innerHTML = headstr+newstr+footstr;
	window.print();
	document.body.innerHTML = oldstr;
}

function deleteConfirmation(model,id)
{
	var answer = confirm("Se borrarán este y sus datos asociados. ¿Desea continuar?");
	if(answer)
	{
		document.deleteForm.model.value = model;
		document.deleteForm.id.value = id;
		document.deleteForm.submit();
	}
} 
function MoveOption(objSourceElement, objTargetElement)    
    {        
           var aryTempSourceOptions = new Array();        
           var x = 0;                
           
           //looping through source element to find selected options        
           for (var i = 0; i < objSourceElement.length; i++) {            
                    //need to move this option to target element                
                    var intTargetLen = objTargetElement.length++;                
                    objTargetElement.options[intTargetLen].text = objSourceElement.options[i].text;                
                    objTargetElement.options[intTargetLen].value = objSourceElement.options[i].value;            
            }                            
    }     
	
function SeleccionaValor(opcion,objSourceElement)
{
	for (var i = 0; i < objSourceElement.length; i++) {
		if(objSourceElement.options[i].value==opcion){
			objSourceElement.selectedIndex = i;
		}
	}
}

function MoveSelectedOption(objSourceElement, objTargetElement)    
    {        
           var aryTempSourceOptions = new Array();        
           var x = 0;                
           
           //looping through source element to find selected options        
           for (var i = 0; i < objSourceElement.length; i++) {            
                if (objSourceElement.options[i].selected) {                
                    //need to move this option to target element                
                    var intTargetLen = objTargetElement.length++;                
                    objTargetElement.options[intTargetLen].text = objSourceElement.options[i].text;                
                    objTargetElement.options[intTargetLen].value = objSourceElement.options[i].value;            
                 }            
                 else {                
                      //storing options that stay to recreate select element                
                      var objTempValues = new Object();                
                      objTempValues.text = objSourceElement.options[i].text;                
                      objTempValues.value = objSourceElement.options[i].value;                
                      aryTempSourceOptions[x] = objTempValues;                
                      x++;            
                 }        
            }                
            
            //resetting length of source        
            objSourceElement.length = aryTempSourceOptions.length;        
            //looping through temp array to recreate source select element        
            for (var i = 0; i < aryTempSourceOptions.length; i++) {            
                objSourceElement.options[i].text = aryTempSourceOptions[i].text;            
                objSourceElement.options[i].value = aryTempSourceOptions[i].value;            
                objSourceElement.options[i].selected = false;
           }    
    } 
function autofitIframe(iframe){
	o=this.document.body.offsetHeight+30;
	s=this.document.body.scrollHeight+30;
	if(o>0){
		iframe.height=o;
	}else{
		if(s>0){
			iframe.height=s;
		}
	}
}
function setFileValue(field,value)
{
	a = value.split("/");
	if(a.length<2)
	{
		alert("si pero");
		a = value.split("\\");
	}
	else
	{
		alert("no");
	}
	v=a[a.length-1];
	field.value = v;
}