//Validaciones formularios
$(document).ready(function() { 
//Contact form
    $('#contactForm').ajaxForm({ 
        target: '#formContacto', 
        success: function() { 
            $('#formContacto').fadeIn('slow'); 
        } 
    }); 
//Soluciones form
    $('#solucionesForm').ajaxForm({ 
        target: '#formSoluciones', 
        success: function() { 
            $('#formSoluciones').fadeIn('slow'); 
        } 
    }); 
//Register form
    $('#registerForm').ajaxForm({ 
        target: '#formRegistro', 
        success: function() { 
            $('#formRegistro').fadeIn('slow'); 
        } 
    });
//Busqueda form
    $('#eventosBusqueda').ajaxForm({ 
        target: '#tablaEventos', 
        success: function() { 
            $('#tablaEventos').fadeIn('slow'); 
        } 
    }); 
	
});

//Cargar div con informacion
var XMLHttpRequestObject = false;

if (window.XMLHttpRequest) {
        XMLHttpRequestObject = new XMLHttpRequest();
} else if (window.ActiveXObject) {
        XMLHttpRequestObject = new ActiveXObject("Microsoft.XMLHTTP");
}

function loadEventos(fuenteDatos, divID){
        if(XMLHttpRequestObject) {
               var obj = document.getElementById(divID);
               XMLHttpRequestObject.open("GET", fuenteDatos);
               XMLHttpRequestObject.onreadystatechange = function(){
                       if (XMLHttpRequestObject.readyState == 4 && XMLHttpRequestObject.status == 200) {
                           obj.innerHTML = XMLHttpRequestObject.responseText;
                       }
               }
               XMLHttpRequestObject.send(null);
        } 
}
function loadTestimoniales(fuenteDatos, divID){
        if(XMLHttpRequestObject) {
               var obj = document.getElementById(divID);
               XMLHttpRequestObject.open("GET", fuenteDatos);
               XMLHttpRequestObject.onreadystatechange = function(){
                       if (XMLHttpRequestObject.readyState == 4 && XMLHttpRequestObject.status == 200) {
                           obj.innerHTML = XMLHttpRequestObject.responseText;
                       }
               }
               XMLHttpRequestObject.send(null);
        } 
}

//Formulario de eventos
function validaEventosForm(Fields){
	for ( i=0; i < Fields.length; i++ ){
		 if(Fields[i]=='Titulo' && Titulo.value == ''){
			alert('El titulo del evento es necesario'); 
			Titulo.focus();
			return false;
		} else if(Fields[i]=='Fecha' && Fecha.value == ''){
			alert('La fecha del evento no puede estar vacia'); 
			Fecha.focus();
			return false;
		} else if(Fields[i]=='FechaMostrar' && FechaMostrar.value == ''){
			alert('La fecha para mostrar es importante, Ej: Junio 5 y 6'); 
			FechaMostrar.focus();
			return false;
		} else if(Fields[i]=='Horas' && Horas.value == ''){
			alert('El total de horas es necesario'); 
			Horas.focus();
			return false;
		} else if(Fields[i]=='Link' && Link.value == ''){
			alert('Escribe el link del evento'); 
			Link.focus();
			return false;
		} else if(Fields[i]=='Imagenes' && (ImagenGrande.value == '' || ImagenMediana.value == '' || ImagenChica.value == '')){
			alert('Todas las imagenes deben ser puestas en el servidor'); 
			ImagenGrande.focus();
			return false;
		} 
	}
	
}

//Copiar datos de contacto en registro
function copiarContacto(){
	if(document.getElementById('NombreContacto').value!=''){document.getElementById('PNombre').value=document.getElementById('NombreContacto').value;}
	if(document.getElementById('PuestoContacto').value!=''){document.getElementById('PPuesto').value=document.getElementById('PuestoContacto').value;}
	if(document.getElementById('TelContacto').value!=''){document.getElementById('PTel').value=document.getElementById('TelContacto').value;}
	if(document.getElementById('ExtContacto').value!=''){document.getElementById('PExt').value=document.getElementById('ExtContacto').value;}
	if(document.getElementById('EMailContacto').value!=''){document.getElementById('PEMail').value=document.getElementById('EMailContacto').value;}
}

function clearContacto(){
	if(PNombre.value!=''){PNombre.value='';}
	if(PPuesto.value!=''){PPuesto.value='';}
	if(PTel.value!=''){PTel.value='';}
	if(PExt.value!=''){PExt.value='';}
	if(PEMail.value!=''){PEMail.value='';}
}

//Promo principal
$(function(){
  //Get our elements for faster access and set overlay width
  var div = $('div.thumbs'),
               ul = $('ul.thumbsPics'),
               // unordered list's left margin
               ulPadding = 15;

  //Get menu width
  var divWidth = div.width();

  //Remove scrollbars
  div.css({overflow: 'hidden'});

  //Find last image container
  var lastLi = ul.find('li:last-child');

  //When user move mouse over menu
  div.mousemove(function(e){

    //As images are loaded ul width increases,
    //so we recalculate it each time
    var ulWidth = lastLi[0].offsetLeft + lastLi.outerWidth() + ulPadding;

    var left = (e.pageX - div.offset().left) * (ulWidth-divWidth) / divWidth;
    div.scrollLeft(left);
  });
});

//Ticker de testimoniales

function createAjaxObj(){
	var httprequest=false
	if (window.XMLHttpRequest &&!window.ActiveXObject){ // if Mozilla, Safari etc
		httprequest=new XMLHttpRequest()
		if (httprequest.overrideMimeType)
			httprequest.overrideMimeType('text/xml')
	}
	else if (window.ActiveXObject){ // if IE
		try {
			httprequest=new ActiveXObject("Msxml2.XMLHTTP");
		} 
		catch (e){
			try{
				httprequest=new ActiveXObject("Microsoft.XMLHTTP");
			}
			catch (e){}
		}
	} //end IE
	return httprequest
}

// -------------------------------------------------------------------
// Main Ajax Ticker Object function
// ajax_ticker(xmlfile, divId, divClass, delay, optionalfadeornot)
// -------------------------------------------------------------------

function ajax_ticker(xmlfile, divId, divClass, delay, fadeornot){
	this.xmlfile=xmlfile //Variable pointing to the local ticker xml file (txt)
	this.tickerid=divId //ID of ticker div to display information
	var delay=(typeof delay=="number")? [delay] : delay //convert parameterif string into array [delay, refetchdelay]
	this.delay=delay[0] //Delay between msg change, in miliseconds.
	this.refetchdelay=delay[1] //Delay between refetching of Ajax contents
	this.mouseoverBol=0 //Boolean to indicate whether mouse is currently over ticker (and pause it if it is)
	this.pointer=0
	this.opacitystring=(typeof fadeornot!="undefined")? "width: 100%; filter:progid:DXImageTransform.Microsoft.alpha(opacity=100); opacity: 1" : ""
	if (this.opacitystring!="") this.delay+=500 //add 1/2 sec to account for fade effect, if enabled
		this.opacitysetting=0.2 //Opacity value when reset. Internal use.
	this.messages=[] //Arrays to hold each message of ticker
	this.ajaxobj=createAjaxObj()
	document.write('<div id="'+divId+'" class="'+divClass+'"><div style="'+this.opacitystring+'">Initializing ticker...</div></div>')
	this.getXMLfile()
}

// -------------------------------------------------------------------
// getXMLfile()- Use Ajax to fetch xml file (txt)
// -------------------------------------------------------------------

ajax_ticker.prototype.getXMLfile=function(){
	this.ajaxobj=createAjaxObj() //recreate Ajax object (IE seems to require it)
	if (this.ajaxobj){
		var instanceOfTicker=this
		var url=this.xmlfile+"?bustcache="+new Date().getTime()
		this.ajaxobj.onreadystatechange=function(){instanceOfTicker.initialize()}
		this.ajaxobj.open('GET', url, true)
		this.ajaxobj.send(null)
	}
}

// -------------------------------------------------------------------
// initialize()- Initialize ticker method.
// -Gets contents of xml file and parse it using JavaScript DOM methods 
// -------------------------------------------------------------------

ajax_ticker.prototype.initialize=function(){
	if (this.ajaxobj.readyState == 4){ //if request of file completed
		if (this.ajaxobj.status==200 || window.location.href.indexOf("http")==-1){ //if request was successful
			this.contentdiv=document.getElementById(this.tickerid).firstChild //div of inner content that holds the messages
			var xmldata=this.ajaxobj.responseText
			this.contentdiv.style.display="none"
			this.contentdiv.innerHTML=xmldata
			if (this.contentdiv.getElementsByTagName("div").length==0){ //if no messages were found
				this.contentdiv.innerHTML="<b>Error</b> fetching remote ticker file!"
				return
			}
		var instanceOfTicker=this
		document.getElementById(this.tickerid).onmouseover=function(){instanceOfTicker.mouseoverBol=1}
		document.getElementById(this.tickerid).onmouseout=function(){instanceOfTicker.mouseoverBol=0}
		clearTimeout(this.fadetimer1) //clear timers
		clearTimeout(this.pausetimer)
		clearTimeout(this.rotatetimer)
		this.mouseoverBol=0
		this.messages=[] //reset messages[] to blank array (in the event initialize is being called again)
		//Cycle through XML object and store each message inside array
		for (var i=0; i<this.contentdiv.getElementsByTagName("div").length; i++){
			if (this.contentdiv.getElementsByTagName("div")[i].className=="message")
				this.messages[this.messages.length]=this.contentdiv.getElementsByTagName("div")[i].innerHTML
		}
		this.contentdiv.innerHTML=""
		this.contentdiv.style.display="block"
		this.rotatemsg()
		if (this.refetchdelay>5000) //if refetch data delay is greater than 5 seconds
			setTimeout(function(){instanceOfTicker.getXMLfile()}, this.refetchdelay)
		}
	}
}

// -------------------------------------------------------------------
// rotatemsg()- Rotate through ticker messages and displays them
// -------------------------------------------------------------------

ajax_ticker.prototype.rotatemsg=function(){
	var instanceOfTicker=this
	if (this.mouseoverBol==1) //if mouse is currently over ticker, do nothing (pause it)
		this.pausetimer=setTimeout(function(){instanceOfTicker.rotatemsg()}, 100)
	else{ //else, construct item, show and rotate it!
		if (this.contentdiv.filters) //In IE, reapply filter attribute each time
			this.contentdiv.style.filter="progid:DXImageTransform.Microsoft.alpha(opacity="+(this.opacitysetting*100)+")";
		this.fadetransition("reset")
		this.contentdiv.innerHTML=this.messages[this.pointer]
		this.fadetimer1=setInterval(function(){instanceOfTicker.fadetransition('up', 'fadetimer1')}, 100) //FADE EFFECT- PLAY IT
		this.pointer=(this.pointer<this.messages.length-1)? this.pointer+1 : 0
		this.rotatetimer=setTimeout(function(){instanceOfTicker.rotatemsg()}, this.delay) //update container periodically
	}
}

// -------------------------------------------------------------------
// fadetransition()- cross browser fade method for IE5.5+ and Mozilla/Firefox
// -------------------------------------------------------------------

ajax_ticker.prototype.fadetransition=function(fadetype, timerid){
	var contentdiv=this.contentdiv
	if (fadetype=="reset")
		this.opacitysetting=0.2
	if (contentdiv.filters && contentdiv.filters[0]){
		if (typeof contentdiv.filters[0].opacity=="number") //IE6+
			contentdiv.filters[0].opacity=this.opacitysetting*100
		else //IE 5.5
			contentdiv.style.filter="alpha(opacity="+this.opacitysetting*100+")"
	}
	else if (contentdiv.style.opacity!="undefined"){
		contentdiv.style.opacity=this.opacitysetting
	}
	else
		this.opacitysetting=1
	if (fadetype=="up")
		this.opacitysetting+=0.1
	if (fadetype=="up" && this.opacitysetting>=1){
		if (contentdiv.style && contentdiv.style.removeAttribute)
			contentdiv.style.removeAttribute('filter') //fix IE clearType problem
		clearInterval(this[timerid])
	}
}



