/* ,.·'`'·.,,.·'`'·.,,.·'`'·.,,.·'`'·.,,.·'`'·.,,.·'`'·.,,.·'`'·.,,.·'`'·.,,. *\

   Zen JavaScript Form
   (c) 2006 Zendhi Nagao <nagaozen@hotmail.com>

   This Lib is freely distributable under the terms of an MIT-style license.
   For details, see Zen web site: http://zend.lojcomm.com.br

\* ,.·'`'·.,,.·'`'·.,,.·'`'·.,,.·'`'·.,,.·'`'·.,,.·'`'·.,,.·'`'·.,,.·'`'·.,,. */

function isEml(field){var v=field.value, re=/^([\w\.\-])+@(([\w\-])+\.)+([\w]{2,6})+$/;return re.test(v);}
function isVal(field){var v=field.value, re=/^[-_a-z0-9!,;:@$ áàãâäéèêëíìîïóòõôöúùûü\/\+\?\.\(\)\|\n\f\r\t]+$/i;return re.test(v);}
function isNum(str,valids){if(!valids)valids="1234567890.";var f=true;var c,i;for(i=0;i<str.length;i++){c=str.charAt(i);if(f==true&&valids.indexOf(c)==-1)f=false;}return f;}
function filterNum(field){var output="";var content=field.value;var c,i;for(i=0;i<content.length;i++){c=content.charAt(i);if(c==',')c='.';if(isNum(c))output+=c;}field.value=output;}

// function isSafe(chr){f=true;if((chr<'a'||chr>'z')&&(chr<'A'||chr>'Z')&&(chr<'0'||chr>'9')){switch(chr){case '\\':case '(':case ')':case '*':case '-':case '.':case '!':break;case '+':case ',':f=false;break;default:if(chr!='_')f=false;break;}}return f;}
// function urlEncode(str){var output="";var ch;for(var i=0;i<str.length;i++){ch=str.charAt(i);if(ch==' '){output+='+';}else if(isSafe(ch)){output+=ch}else{output+=encodeURIComponent(ch);}}return output;}
function urlEncode(str) { return escape(str).replace(/\+/g,'%2B').replace(/\"/g,'%22').replace(/\'/g,'%27').replace(/\//g,'%2F'); }
function safeEncode(v){var output=urlEncode(v);output=output.replace(/%/gi,"@-@");return output;}

function setStatus(oElement, status){oElement.disabled=status;}
function set1stRadioChecked(buttonGroup){if(buttonGroup[0])buttonGroup[0].checked=true;else buttonGroup.checked=true;}

function getSelectedRadio(buttonGroup){if(buttonGroup[0]){for(var i=0;i<buttonGroup.length;i++){if(buttonGroup[i].checked){return i;}}}else{if(buttonGroup.checked){return 0;}}return -1;}
function getSelectedRadioValue(buttonGroup){var i=getSelectedRadio(buttonGroup);if(i==-1){return "";}else{if(buttonGroup[i]){return buttonGroup[i].value;}else{return buttonGroup.value;}}}
function getSelectedCheckbox(buttonGroup){var retArr=new Array();var lastElement=0;if(buttonGroup[0]){for(var i=0;i<buttonGroup.length;i++){if(buttonGroup[i].checked){retArr.length=lastElement;retArr[lastElement]=i;lastElement++;}}}else{if(buttonGroup.checked){retArr.length=lastElement;retArr[lastElement]=0;}}return retArr;}
function getSelectedCheckboxValue(buttonGroup){var retArr=new Array();var selectedItems=getSelectedCheckbox(buttonGroup);if(selectedItems.length!=0){retArr.length=selectedItems.length;for(var i=0;i<selectedItems.length;i++){if(buttonGroup[selectedItems[i]]){retArr[i]=buttonGroup[selectedItems[i]].value;}else{retArr[i]=buttonGroup.value;}}}return retArr;}
function getFormString(obj){var output="";for(var x=0;obj.elements[x];x++){f=obj.elements[x];if(f.type.toLowerCase()=="submit"||f.type.toLowerCase()=="reset"||f.type.toLowerCase()=="button"){}else if(f.type.toLowerCase()=="radio"){if(f.checked)output+="&"+f.name+"="+safeEncode(getSelectedRadioValue(f));}else if(f.type.toLowerCase()=="checkbox"){if(f.checked)output+="&"+f.name+"="+safeEncode(getSelectedCheckboxValue(f));}else if(f.type.toLowerCase()=="select-one"){output+="&"+f.name+"="+safeEncode(f.options[f.selectedIndex].value);}else{if(f.value.length>0)output+="&"+f.name+"="+safeEncode(f.value);}}return output.substr(1);}
function getFormHash(obj) {
    var querystring = [];
    obj.getFormElements().each( function( el ) {
        var name = el.name;
        var value = el.getValue();
        querystring.push( name + '=' + value );
    } );
    return querystring.join('&');
}
function luhnCheck(input) {
    var no_digit = input.length;
    var oddoeven = no_digit & 1;
    var sum = 0;
    for (var count = 0; count < no_digit; count++) {
        var digit = parseInt(input.charAt(count));
        if (!((count & 1) ^ oddoeven)) {
            digit *= 2;
            if (digit > 9) digit -= 9;
        }
        sum += digit;
    }
    if (sum % 10 == 0) return true;
    else return false;
}
