//Mensajes de control de formulario
ListMessage=new Array();
ListMessage["title"]="Tienes escribir un título";
ListMessage["name"]="Tienes escribir un nombre";
ListMessage["url"]="Tienes escribir una url";
ListMessage["cliente"]="Tienes elegir un cliente";
ListMessage["categoria"]="Tienes elegir al menos una categoría";
ListMessage["description"]="Tienes escribir una descripción";
ListMessage["peso"]="Tienes elegir un peso";
ListMessage["nombre_empresa"]="Tienes escribir el nombre de su empresa";
ListMessage["nombre_usuario"]="Tienes escribir su nombre";
ListMessage["email_usuario"]="Tienes escribir su e-mail";
ListMessage["mensaje"]="Tienes escribir un mensaje";
ListMessage["email_valid"]="Tienes escribir un e-mail válido";


function displayElementMenu(sName){
	if(document.getElementById(sName).style.display=="")
		document.getElementById(sName).style.display = "none";
	else
		document.getElementById(sName).style.display = "";
	return false;
}

function displayElementAll(sName){
	document.getElementById(sName).style.display = "";
}


function disconnect() {
	return confirm('Esta seguro de querer salir de la aplicacion');
}

//Verifies that variable has value
function isValue(name){
	if( name.length ==0){
		return false;
	}
	return true;
}

function isValueSelect(name){
	if(name==0){
		return false;
	}
	if( name.length ==0){
		return false;
	} else if (name==-1){
		return false;
	}
	return true;
}


function isRadioValue(name){
	for(j=0; j<name.length; j++){
		if (name[j].checked){
			return true;
		}
	}
	return false;
}

// Verifies that variable is a Number
function isValueNumber(name) {
	var numberText= /^([0-9\s\+\-])+$/;
	if(!numberText.test(name) ) {  
         return false;
    }
    return true;
}

// Verifies long to Number Phone
function isLongNumber(name) {
	if(name.length!=9 && name.length!=0) {  
         return false;
    }
    return true;
}

function isMobileNumber(name) {
	if(name.length!=0) { 
		var primernumero = name.substr(0, 1);
         if(primernumero!=6 ) {  
         	return false;
    	 }
    }
    return true;
}

function isValueSecondParameter(oForm, valueA){
	isValueV=true;
	//Is value WHEN value 1 has value
	if(valueA.length==3){
		if(eval("oForm."+valueA[2]+".length")>1 && eval("oForm."+valueA[2]+".type")!="select-one"){
			isValueV=isRadioValue(eval("oForm."+valueA[2]));
		} else{
			isValueV=isValue(document.getElementById(valueA[2]).value);
		}
	}
	return isValueV; 
}

function universalValidation(oForm) {
	// Input classes
	var resForm=true;
	var messageAE=new Array();
	var total=oForm.elements.length;
	// Iterate over the Form elements 
	for(positionForm=0;positionForm<total;positionForm++) {
		// First reset the input classes
		if(oForm.elements[positionForm].type=='text' || oForm.elements[positionForm].type=='select-one' ||
    	   oForm.elements[positionForm].type=='textarea'){
	       //oForm.elements[positionForm].className = "prueba";  
	    }
	    check=0;
	    if(oForm.elements[positionForm].name!=undefined){
	    	check=oForm.elements[positionForm].name.indexOf("_check");
	    }
		if(check>0){
		    lang=oForm.elements[positionForm].value;
		    checkName=oForm.elements[positionForm].name.substr(0,check);
		    checkData=eval("oForm."+checkName);
			validationsA=lang.split("|");
			total1=validationsA.length;
			for (v=0; v<total1; v++){
				valueA=validationsA[v].split(";");
				res=true;
				message=valueA[1];
				switch(valueA[0]) {
					//Verifies that element is a Number
					case 'NUMBER':
						if(isValueSecondParameter(oForm, valueA)){			
							res=isValueNumber(checkData.value);
						}
					break; 
					//Verifies that element has a value
					case 'VALUE':
						//Verifies that elements has value
						if(isValueSecondParameter(oForm, valueA)){
							if(checkData.type=="radio" || checkData.type=="checkbox"){
								if(checkData.checked){
									res=true;
								} else{
									res=isRadioValue(eval("oForm."+checkData.name));
								}
							} else if(checkData.type=="select-one") {
								res=isValueSelect(checkData.value);
							} else {
								res=isValue(checkData.value);
							}
						}
					break;
					case 'EMAIL':
						if(isValueSecondParameter(oForm, valueA)){
							res=checkEmail (checkData.value);
						}
					break;
					case 'ZIPCODE':
						res=isZipCodeCorrect (checkData.value);
					break;
					case 'PASTDATE':
						 res=isPastDate(checkData.value);
					break;
					case 'POSTDATE':
						 res=isPostDate(checkData.value);
					break;
					case 'CORRECTDATE':
						res=isDateCorrect(checkData.value);
					break;
					case 'MAYORDATE':
						if(valueA.length>2){
							res=isMayorDate (checkData.value, document.getElementById(valueA[2]).value);
						}
					break;
					case 'MINORDATE':
						if(valueA.length>2){
							res=isMayorDate (checkData.value, document.getElementById(valueA[2]).value);
						}
					break;
					case 'BETWEENDATE':
                        if(valueA.length>3){
                            res=isBetweenDate(checkData.value, document.getElementById(valueA[2]).value, document.getElementById(valueA[3]).value);
                        }
                    break;					
					case 'NIF':
						res=isNifCorrect (checkData.value, document.getElementById(valueA[2]).value);
					break
					case 'NUMBER_PHONE':
						if(isValueSecondParameter(oForm, valueA)){			
							res=isLongNumber(checkData.value);
						}
					break;
				}
			    if(!res){
			        if(checkData.type!='radio' && checkData.type!='checkbox' && checkData.type!='hidden'){
				        //checkData.className = "error";
				    }
				    messageAE.push(ListMessage[message]);
				    v=total1;
				    resForm=false;
			    }
			 }
		}
	} // FOR
	if(!resForm){
		viewContent('div', 'div', 780, 600, 'error', "Error en formulario", messageAE.join("<br>"), "30");
	}
	return resForm;
}//universalValidation

function controlOut(href){
	if(checkControlOut){
		newHref=href;
		ControlAceptar="href";
		viewContent("divControlOut", "confirm", 450, 80, "", "", "", 30);
		return false;
	}
	return true;
}

function confirmYes(returnData) {
	alert("si");
}

function confirmNo() {
    alert("no");
}

function viewContent(id, type, boxWidth, boxHeight, classCss, urlTitle, urlContent, boxHeightTitle){
   if(id=='ajax'){
		var title=ajaxResponseGet(urlTitle);
		var content=ajaxResponseGet(urlContent);
	} else if(id=='div'){
		var title=urlTitle;
		var content=urlContent;
	} else {
		var title=document.getElementById(id + "_title").innerHTML;
		var content=document.getElementById(id + "_content").innerHTML;
	}
	if(type=="alert" || type=="div"){
		alertDialog = new jt_AppAlert(jt_AppAlert.Error);
		alertDialog.setContent(content);
		alertDialog.show();
	} else if (type=="prompt"){
		alertDialog = new jt_AppPrompt(confirmYes, confirmNo, classCss);
		alertDialog.askUser(content, testPromptData);
		alertDialog.focus();
	} else if (type=="confirm"){
		alertDialog = new jt_AppConfirm('', confirmYes, confirmNo);
		alertDialog.setContent(content);
		alertDialog.show();
	}
	alertDialog.setTitle(title);
	alertDialog.setWidth(boxWidth);
	alertDialog.setHeightTitle(boxHeightTitle);
	x = Math.round((document.body.clientWidth -boxWidth )/ 2);
    y=200;
	alertDialog.moveTo(x, y);
	if(type=="div"){
		alertDialog.buttonDIV.style.display='none';
	}
	alertDialog.iconImage.style.display='none';
	if(classCss=="blank"){
        jt_Veil.veil.style["backgroundColor"] ="#FFFFFF";
        jt_Veil.veil.style["filter"] = "";
        jt_Veil.veil.style["opacity"] = "";
    }
	return false;
}

function checkEmail(name) {
    if(!isValue(name))
        return false;
    var email = /^(.+\@.+\..+)$/;
    if(!email.test(name)) {   
        return false;
    }
    return true;
}

function controlError(detError, type){
    if(detError!=""){
        document.getElementById('messageError_content').innerHTML=detError;
        typeDiv="div";
        if(type=='CONFIRM'){
            typeDiv="confirm";
        }
        viewContent('messageError', typeDiv, 750, 100, 'error', '', '', 30);
    }
}