addEvent(window,'load',initForm);

var highlight_array=new Array();

function initForm(){
	initializeFocus();
	initAutoResize();
	ifInstructs();
	browserDetect();
	edFactura();
}

function initializeFocus(){
	fields=getElementsByClassName(document,"*","field");
	for(i=0;i<fields.length;i++){
		if(fields[i].type=='radio'){
			fields[i].onclick=function(){
				clearSafariRadios();
				var nodo;
				if (this.parentNode["nodeName"] == "FIELDSET") nodo = this.parentNode;
				else if (this.parentNode.parentNode["nodeName"] == "FIELDSET") nodo = this.parentNode.parentNode;
				else if (this.parentNode.parentNode.parentNode["nodeName"] == "FIELDSET") nodo = this.parentNode.parentNode.parentNode;
				else if (this.parentNode.parentNode.parentNode.parentNode["nodeName"] == "FIELDSET") nodo = this.parentNode.parentNode.parentNode.parentNode;
				addClassName(nodo,"focused",true);
				edPago()
			};
			fields[i].onfocus=function(){
				clearSafariRadios();
				var nodo;
				if (this.parentNode["nodeName"] == "FIELDSET") nodo = this.parentNode;
				else if (this.parentNode.parentNode["nodeName"] == "FIELDSET") nodo = this.parentNode.parentNode;
				else if (this.parentNode.parentNode.parentNode["nodeName"] == "FIELDSET") nodo = this.parentNode.parentNode.parentNode;
				else if (this.parentNode.parentNode.parentNode.parentNode["nodeName"] == "FIELDSET") nodo = this.parentNode.parentNode.parentNode.parentNode;
				addClassName(nodo,"focused",true)
			};
			fields[i].onblur=function(){
				var nodo;
				if (this.parentNode["nodeName"] == "FIELDSET") nodo = this.parentNode;
				else if (this.parentNode.parentNode["nodeName"] == "FIELDSET") nodo = this.parentNode.parentNode;
				else if (this.parentNode.parentNode.parentNode["nodeName"] == "FIELDSET") nodo = this.parentNode.parentNode.parentNode;
				else if (this.parentNode.parentNode.parentNode.parentNode["nodeName"] == "FIELDSET") nodo = this.parentNode.parentNode.parentNode.parentNode;
				removeClassName(nodo,"focused")
			};
			highlight_array.splice(highlight_array.length,0,fields[i]);
		}
		else 
		{
			if(fields[i].type=='checkbox'){
				fields[i].onclick=function(){
					clearSafariRadios();
					var nodo;
					if (this.parentNode["nodeName"] == "FIELDSET") nodo = this.parentNode;
					else if (this.parentNode.parentNode["nodeName"] == "FIELDSET") nodo = this.parentNode.parentNode;
					else if (this.parentNode.parentNode.parentNode["nodeName"] == "FIELDSET") nodo = this.parentNode.parentNode.parentNode;
					else if (this.parentNode.parentNode.parentNode.parentNode["nodeName"] == "FIELDSET") nodo = this.parentNode.parentNode.parentNode.parentNode;
					else if (this.parentNode.parentNode.parentNode.parentNode.parentNode["nodeName"] == "FIELDSET") nodo = this.parentNode.parentNode.parentNode.parentNode.parentNode;
					addClassName(nodo,"focused",true);
					if (this.id == "chkFactura") edFactura();
					else if (this.id == "chkGastos") callPrecioTotal();
				};
				fields[i].onfocus=function(){
					clearSafariRadios();
					var nodo;
					if (this.parentNode["nodeName"] == "FIELDSET") nodo = this.parentNode;
					else if (this.parentNode.parentNode["nodeName"] == "FIELDSET") nodo = this.parentNode.parentNode;
					else if (this.parentNode.parentNode.parentNode["nodeName"] == "FIELDSET") nodo = this.parentNode.parentNode.parentNode;
					else if (this.parentNode.parentNode.parentNode.parentNode["nodeName"] == "FIELDSET") nodo = this.parentNode.parentNode.parentNode.parentNode;
					else if (this.parentNode.parentNode.parentNode.parentNode.parentNode["nodeName"] == "FIELDSET") nodo = this.parentNode.parentNode.parentNode.parentNode.parentNode;
					addClassName(nodo,"focused",true)
				};
				fields[i].onblur=function(){
					var nodo;
					if (this.parentNode["nodeName"] == "FIELDSET") nodo = this.parentNode;
					else if (this.parentNode.parentNode["nodeName"] == "FIELDSET") nodo = this.parentNode.parentNode;
					else if (this.parentNode.parentNode.parentNode["nodeName"] == "FIELDSET") nodo = this.parentNode.parentNode.parentNode;
					else if (this.parentNode.parentNode.parentNode.parentNode["nodeName"] == "FIELDSET") nodo = this.parentNode.parentNode.parentNode.parentNode;
					else if (this.parentNode.parentNode.parentNode.parentNode.parentNode["nodeName"] == "FIELDSET") nodo = this.parentNode.parentNode.parentNode.parentNode.parentNode;
					removeClassName(nodo,"focused")
				};
				highlight_array.splice(highlight_array.length,0,fields[i]);
			}
			else
			{
				if(fields[i].type=='file'){
					fields[i].onclick=function(){
						clearSafariRadios();
						var nodo;
						if (this.parentNode["nodeName"] == "FIELDSET") nodo = this.parentNode;
						else if (this.parentNode.parentNode["nodeName"] == "FIELDSET") nodo = this.parentNode.parentNode;
						else if (this.parentNode.parentNode.parentNode["nodeName"] == "FIELDSET") nodo = this.parentNode.parentNode.parentNode;
						else if (this.parentNode.parentNode.parentNode.parentNode["nodeName"] == "FIELDSET") nodo = this.parentNode.parentNode.parentNode.parentNode;
						else if (this.parentNode.parentNode.parentNode.parentNode.parentNode["nodeName"] == "FIELDSET") nodo = this.parentNode.parentNode.parentNode.parentNode.parentNode;
						addClassName(nodo,"focused",true)
					};
					fields[i].onfocus=function(){
						clearSafariRadios();
						var nodo;
						if (this.parentNode["nodeName"] == "FIELDSET") nodo = this.parentNode;
						else if (this.parentNode.parentNode["nodeName"] == "FIELDSET") nodo = this.parentNode.parentNode;
						else if (this.parentNode.parentNode.parentNode["nodeName"] == "FIELDSET") nodo = this.parentNode.parentNode.parentNode;
						else if (this.parentNode.parentNode.parentNode.parentNode["nodeName"] == "FIELDSET") nodo = this.parentNode.parentNode.parentNode.parentNode;
						else if (this.parentNode.parentNode.parentNode.parentNode.parentNode["nodeName"] == "FIELDSET") nodo = this.parentNode.parentNode.parentNode.parentNode.parentNode;
						addClassName(nodo,"focused",true)
					};
					fields[i].onblur=function(){
						var nodo;
						if (this.parentNode["nodeName"] == "FIELDSET") nodo = this.parentNode;
						else if (this.parentNode.parentNode["nodeName"] == "FIELDSET") nodo = this.parentNode.parentNode;
						else if (this.parentNode.parentNode.parentNode["nodeName"] == "FIELDSET") nodo = this.parentNode.parentNode.parentNode;
						else if (this.parentNode.parentNode.parentNode.parentNode["nodeName"] == "FIELDSET") nodo = this.parentNode.parentNode.parentNode.parentNode;
						else if (this.parentNode.parentNode.parentNode.parentNode.parentNode["nodeName"] == "FIELDSET") nodo = this.parentNode.parentNode.parentNode.parentNode.parentNode;
						removeClassName(nodo,"focused")
					};
					highlight_array.splice(highlight_array.length,0,fields[i]);
				}
				else
				{
					fields[i].onfocus=function(){
						clearSafariRadios();
						var nodo;
						if (this.parentNode["nodeName"] == "FIELDSET") nodo = this.parentNode;
						else if (this.parentNode.parentNode["nodeName"] == "FIELDSET") nodo = this.parentNode.parentNode;
						else if (this.parentNode.parentNode.parentNode["nodeName"] == "FIELDSET") nodo = this.parentNode.parentNode.parentNode;
						else if (this.parentNode.parentNode.parentNode.parentNode["nodeName"] == "FIELDSET") nodo = this.parentNode.parentNode.parentNode.parentNode;
						addClassName(nodo,"focused",true)
					};
					fields[i].onblur=function(){
						var nodo;
						if (this.parentNode["nodeName"] == "FIELDSET") nodo = this.parentNode;
						else if (this.parentNode.parentNode["nodeName"] == "FIELDSET") nodo = this.parentNode.parentNode;
						else if (this.parentNode.parentNode.parentNode["nodeName"] == "FIELDSET") nodo = this.parentNode.parentNode.parentNode;
						else if (this.parentNode.parentNode.parentNode.parentNode["nodeName"] == "FIELDSET") nodo = this.parentNode.parentNode.parentNode.parentNode;
						removeClassName(nodo,"focused")
					};
				}
			}
		}
	}
}

function getElementsByClassName(oElm,strTagName,strClassName){
	var arrElements=(strTagName=="*"&&oElm.all)?oElm.all:oElm.getElementsByTagName(strTagName);
	var arrReturnElements=new Array();
	strClassName=strClassName.replace(/\-/g,"\\-");
	var oRegExp=new RegExp("(^|\\s)"+strClassName+"(\\s|$)");
	var oElement;
	for(var i=0;i<arrElements.length;i++){
		oElement=arrElements[i];
		if(oRegExp.test(oElement.className)){
			arrReturnElements.push(oElement);
		}
	}

	return(arrReturnElements)
}

function clearSafariRadios(){
	for(var i=0;i<highlight_array.length;i++){
		if(highlight_array[i].parentNode){
			var nodo;
			if (highlight_array[i].parentNode["nodeName"] == "FIELDSET") nodo = highlight_array[i].parentNode;
			else if (highlight_array[i].parentNode.parentNode["nodeName"] == "FIELDSET") nodo = highlight_array[i].parentNode.parentNode;
			else if (highlight_array[i].parentNode.parentNode.parentNode["nodeName"] == "FIELDSET") nodo = highlight_array[i].parentNode.parentNode.parentNode;
			else if (highlight_array[i].parentNode.parentNode.parentNode.parentNode["nodeName"] == "FIELDSET") nodo = highlight_array[i].parentNode.parentNode.parentNode.parentNode;
			removeClassName(nodo,'focused');
		}
	}
}

function initAutoResize(){
}

function ifInstructs(){
	var container=document.getElementById('public');
	if(container){
		removeClassName(container,'noI');
		var instructs=getElementsByClassName(document,"*","instruct");
		if((container.offsetWidth<=450)||(instructs=='')){
			addClassName(container,'noI',true);
		}
	}
}

function browserDetect(){
	var detect=navigator.userAgent.toLowerCase();
	var container=document.getElementsByTagName('html');
	if(detect.indexOf('safari')+1){
		addClassName(container[0],'safari',true);
	}
	if(detect.indexOf('firefox')+1){
		addClassName(container[0],'firefox',true);
	}
}

function addClassName(objElement,strClass,blnMayAlreadyExist){
	if(objElement.className){
		var arrList=objElement.className.split(' ');
		if(blnMayAlreadyExist){
			var strClassUpper=strClass.toUpperCase();
			for(var i=0;i<arrList.length;i++){
				if(arrList[i].toUpperCase()==strClassUpper){
					arrList.splice(i,1);
					i--;
				}
			}
		}
		arrList[arrList.length]=strClass;
		objElement.className=arrList.join(' ');
	}
	else{
	objElement.className=strClass;
	}
}

function removeClassName(objElement,strClass){
	if(objElement.className){
		var arrList=objElement.className.split(' ');
		var strClassUpper=strClass.toUpperCase();
		for(var i=0;i<arrList.length;i++){
			if(arrList[i].toUpperCase()==strClassUpper){
				arrList.splice(i,1);
				i--;
			}
		}	
		objElement.className=arrList.join(' ');
	}
}

function addEvent(obj,type,fn){
	if(obj.attachEvent){
		obj["e"+type+fn]=fn;
		obj[type+fn]=function(){
		obj["e"+type+fn](window.event)};
		obj.attachEvent("on"+type,obj[type+fn]);
	}
	else{
		obj.addEventListener(type,fn,false);
	}
}

function valida()
{
	var hasError = false;
	var emailReg = /^([\w-\.]+@([\w-]+\.)+[\w-]{2,4})?$/;
	
	var quantity_1	= document.getElementById("quantity_1").value;
	var ip_nombre	= document.getElementById("ip_nombre").value;
	var ip_apaterno	= document.getElementById("ip_apaterno").value;
	var ip_amaterno	= document.getElementById("ip_amaterno").value;
	var de_domicilio = document.getElementById("de_domicilio").value;
	var de_colonia	= document.getElementById("de_colonia").value;
	var de_estado	= document.getElementById("de_estado").value;
	var de_ciudad	= document.getElementById("de_ciudad").value;
	var de_cp		= document.getElementById("de_cp").value;
	var ia_email	= document.getElementById("ia_email").value;
	var ia_telefono = document.getElementById("ia_telefono").value;
	var chkFactura	= document.getElementById("chkFactura").value;

	var dcf_razonsocial = document.getElementById("dcf_razonsocial").value;
	var dcf_rfc			= document.getElementById("dcf_rfc").value;
	var dcf_domicilio	= document.getElementById("dcf_domicilio").value;
	var dcf_colonia		= document.getElementById("dcf_colonia").value;
	var dcf_pais		= document.getElementById("dcf_pais").value;
	var dcf_estado		= document.getElementById("dcf_estado").value;
	var dcf_ciudad		= document.getElementById("dcf_ciudad").value;
	var dcf_cp			= document.getElementById("dcf_cp").value;

	if (quantity_1 == '')
	{
		document.getElementById("plibro").className = "error";
		hasError = true;
	}
	else document.getElementById("plibro").className = "";

	if (ip_nombre == '' || ip_apaterno == '' || ip_amaterno == '')
	{
		document.getElementById("ip").className = "error";
		hasError = true;
	}
	else document.getElementById("ip").className = "";

	if (de_domicilio == '' || de_colonia == '' || de_estado == '' || de_ciudad == '' || de_cp == '')
	{
		document.getElementById("de").className = "error";
		hasError = true;
	}
	else document.getElementById("de").className = "";

	if (ia_email == '' || ia_telefono == '')
	{
		document.getElementById("ia").className = "error";
		hasError = true;
	}
	else if (!emailReg.test(ia_email)) {	
		document.getElementById("ia").className = "error";
		hasError = true;
	}
	else document.getElementById("ia").className = "";

	if (document.getElementById('chkFactura').checked)
		if (dcf_razonsocial == '' || dcf_rfc == '' || dcf_domicilio == '' || dcf_colonia == '' || dcf_pais == '' || dcf_estado == '' || dcf_ciudad == '' || dcf_cp == '')
		{
			document.getElementById("dcf").className = "error";
			hasError = true;
		}
		else document.getElementById("dcf").className = "";
	else document.getElementById("dcf").className = "";

	if(hasError == true) {
		alert("La información no pudo ser enviada, favor de verificar.");
		return false;
	}
}

function edFactura()
{
	if (document.getElementById('chkFactura').checked)
	{
		document.getElementById('dcf_razonsocial').disabled = false;
		document.getElementById('dcf_rfc').disabled = false;
		document.getElementById('dcf_domicilio').disabled = false;
		document.getElementById('dcf_colonia').disabled = false;
		document.getElementById('dcf_pais').disabled = false;
		document.getElementById('dcf_estado').disabled = false;
		document.getElementById('dcf_ciudad').disabled = false;
		document.getElementById('dcf_cp').disabled = false;
	}
	else
	{
		document.getElementById('dcf_razonsocial').disabled = true;
		document.getElementById('dcf_rfc').disabled = true;
		document.getElementById('dcf_domicilio').disabled = true;
		document.getElementById('dcf_colonia').disabled = true;
		document.getElementById('dcf_pais').disabled = true;
		document.getElementById('dcf_estado').disabled = true;
		document.getElementById('dcf_ciudad').disabled = true;
		document.getElementById('dcf_cp').disabled = true;
	}
}

function callPrecioTotal()
{
	var varGastosEnvio = 0;
	//if (document.getElementById('chkGastos').checked) varGastosEnvio = 250;
	document.getElementById('txtTotal').value = (parseFloat(document.getElementById('quantity_1').value) * 350) + varGastosEnvio;
}

function valida_email(str)
{
	var reg_exp=new RegExp("^[a-zA-Z]+([\._\-]*[a-zA-Z0-9]+)*@[a-zA-Z]+([_\-][a-zA-Z0-9]+)*([\.][a-zA-Z0-9]+)+$");
	return reg_exp.test(str);
}