(function($){var pasteEventName=($.browser.msie?'paste':'input')+".mask";var iPhone=(window.orientation!=undefined);$.mask={definitions:{'9':"[0-9]",'a':"[A-Za-z]",'A':"[A-Z]",'*':"[A-Za-z0-9]"}};$.extend({mapear:function(){$.llamada("mapear.php",arguments);return false;},ejecutar:function(){$.llamada("ejecutar.php",arguments);return false;},llamada:function(){var valido=true;var cadena="";var cadTemp="";cadena="$.post('"+arguments[0]+"',{";var totElem=arguments[1].length;for(i=0;i<totElem;i++){if(i>0){cadena+=",";}
if(typeof(arguments[1][i])=='string'&&arguments[1][i].substr(0,5)=="form:"){formul=arguments[1][i].substr(5);$.validar(formul);validForm=$("#"+formul).attr("valido");if(validForm=="false"){valido=false;}
cadena+=i+":";cadena+="$('#"+arguments[1][i].substr(5)+"').serialize()";}else if(typeof(arguments[1][i])=='string'&&arguments[1][i].length>0){vCadTemp=arguments[1][i].split("'");cadena+=i+":";if(vCadTemp.length>1){cadena+="'"+vCadTemp.join("\\'")+"'";}else{cadena+="'"+arguments[1][i]+"'";}}}
cadena+="},function(data){";cadena+="$.each(data.asigs, function(index, term) {";cadena+="$('#'+index).html(term);";cadena+="});";cadena+="eval(data.js)";cadena+="}, 'json');";
if(valido==true){eval(cadena);}},
validar:function(nomb){return $.validacion($("#"+nomb));},validacion:function(el){var lst=$(el).find("input");var tot=lst.size();var i=0;var ele;var mascara;$(el).attr("valido","true");for(;i<tot;++i){ele=lst.eq(i);switch(ele.attr("format")){case"dni":{destino="^([0-9]{8})-[a-zA-Z]$";break;}
case"fecha":{destino="^([0-9]{2})/([0-9]{2})/([0-9]{4})$";break;}
case"hora":{destino="^([0-2]{1})([0-9]{1}):([0-5]{1})([0-9]{1})h$";break;}
case"cp":{destino="^([0-9]{5})$";break;}
case"telefono":{destino="^['('][0-9]{3}[')'] ([0-9]{3}) ([0-9]{3})$";break;}
case"email":{destino="^([a-zA-Z0-9_.-]{2,50})['@']([a-zA-Z0-9_.-]{2,50})$";break;}
case"login":{destino="^([a-zA-Z0-9_]{4,50})$";break;}
default:{destino="";break;}}
var req=ele.attr("req");var valor=ele.val();if(req=="true"&&valor.length==0){ele.addClass("campoError");$(el).attr("valido","false");}
else{if(destino.length>0){var expreg=new RegExp(destino);if(expreg.test(valor)){ele.removeClass("campoError");}
else{ele.addClass("campoError");$(el).attr("valido","false");}}
else{ele.removeClass("campoError");}}}},formatear:function(nomb){return $.inicial($("#"+nomb));},inicial:function(el){var lst=$(el).find("input");var tot=lst.size();var i=0;var ele;for(;i<tot;++i){ele=lst.eq(i);switch(ele.attr("format")){case"dni":{ele.mask("99999999-a");break;}
case"fecha":{ele.mask("99/99/9999");break;}
case"hora":{ele.mask("99:99h");break;}
case"cp":{ele.mask("99999");break;}
case"telefono":{ele.mask("(999) 999 999");break;}}}}});$.fn.extend({caret:function(begin,end){if(this.length==0)
return;if(typeof begin=='number'){end=(typeof end=='number')?end:begin;return this.each(function(){if(this.setSelectionRange){this.focus();this.setSelectionRange(begin,end);}
else
if(this.createTextRange){var range=this.createTextRange();range.collapse(true);range.moveEnd('character',end);range.moveStart('character',begin);range.select();}});}
else{if(this[0].setSelectionRange){begin=this[0].selectionStart;end=this[0].selectionEnd;}
else
if(document.selection&&document.selection.createRange){var range=document.selection.createRange();begin=0-range.duplicate().moveStart('character',-100000);end=begin+range.text.length;}
return{begin:begin,end:end};}},unmask:function(){return this.trigger("unmask");},mask:function(mask,settings){if(!mask&&this.length>0){var input=$(this[0]);var tests=input.data("tests");return $.map(input.data("buffer"),function(c,i){return tests[i]?c:null;}).join('');}
settings=$.extend({placeholder:"_",completed:null},settings);var defs=$.mask.definitions;var tests=[];var partialPosition=mask.length;var firstNonMaskPos=null;var len=mask.length;$.each(mask.split(""),function(i,c){if(c=='?'){len--;partialPosition=i;}
else
if(defs[c]){tests.push(new RegExp(defs[c]));if(firstNonMaskPos==null)
firstNonMaskPos=tests.length-1;}
else{tests.push(null);}});return this.each(function(){var input=$(this);var buffer=$.map(mask.split(""),function(c,i){if(c!='?')
return defs[c]?settings.placeholder:c});var ignore=false;var focusText=input.val();input.data("buffer",buffer).data("tests",tests);function seekNext(pos){while(++pos<=len&&!tests[pos]);return pos;};function shiftL(pos){while(!tests[pos]&&--pos>=0);for(var i=pos;i<len;i++){if(tests[i]){buffer[i]=settings.placeholder;var j=seekNext(i);if(j<len&&tests[i].test(buffer[j])){buffer[i]=buffer[j];}
else
break;}}
writeBuffer();input.caret(Math.max(firstNonMaskPos,pos));};function shiftR(pos){for(var i=pos,c=settings.placeholder;i<len;i++){if(tests[i]){var j=seekNext(i);var t=buffer[i];buffer[i]=c;if(j<len&&tests[j].test(t))
c=t;else
break;}}};function keydownEvent(e){var pos=$(this).caret();var k=e.keyCode;ignore=(k<16||(k>16&&k<32)||(k>32&&k<41));if((pos.begin-pos.end)!=0&&(!ignore||k==8||k==46))
clearBuffer(pos.begin,pos.end);if(k==8||k==46||(iPhone&&k==127)){shiftL(pos.begin+(k==46?0:-1));return false;}
else
if(k==27){input.val(focusText);input.caret(0,checkVal());return false;}};function keypressEvent(e){if(ignore){ignore=false;return(e.keyCode==8)?false:null;}
e=e||window.event;var k=e.charCode||e.keyCode||e.which;var pos=$(this).caret();if(e.ctrlKey||e.altKey||e.metaKey){return true;}
else
if((k>=32&&k<=125)||k>186){var p=seekNext(pos.begin-1);if(p<len){var c=String.fromCharCode(k);if(tests[p].test(c)){shiftR(p);buffer[p]=c;writeBuffer();var next=seekNext(p);$(this).caret(next);if(settings.completed&&next==len)
settings.completed.call(input);}}}
return false;};function clearBuffer(start,end){for(var i=start;i<end&&i<len;i++){if(tests[i]){buffer[i]=settings.placeholder;}}};function writeBuffer(){return input.val(buffer.join('')).val();};function checkVal(allow){var test=input.val();var lastMatch=-1;for(var i=0,pos=0;i<len;i++){if(tests[i]){buffer[i]=settings.placeholder;while(pos++<test.length){var c=test.charAt(pos-1);if(tests[i].test(c)){buffer[i]=c;lastMatch=i;break;}}
if(pos>test.length){break;}}
else
if(buffer[i]==test[pos]&&i!=partialPosition){pos++;lastMatch=i;}}
if(!allow&&lastMatch+1<partialPosition){input.val("");clearBuffer(0,len);}
else
if(allow||lastMatch+1>=partialPosition){writeBuffer();if(!allow)
input.val(input.val().substring(0,lastMatch+1));}
return(partialPosition?i:firstNonMaskPos);};if(!input.attr("readonly"))
input.one("unmask",function(){input.unbind(".mask").removeData("buffer").removeData("tests");}).bind("focus.mask",function(){focusText=input.val();var pos=checkVal();writeBuffer();setTimeout(function(){if(pos==mask.length)
input.caret(0,pos);else
input.caret(pos);},0);}).bind("blur.mask",function(){checkVal();if(input.val()!=focusText)
input.change();}).bind("keydown.mask",keydownEvent).bind("keypress.mask",keypressEvent).bind(pasteEventName,function(){setTimeout(function(){input.caret(checkVal(true));},0);});checkVal();});}});})(jQuery);
