function onlyChar(evt){
    var charCode =  (evt.which) ? evt.which : event.keyCode;

    if(charCode > 32 && (charCode < 65 || charCode > 90) &&
        (charCode < 97 || charCode > 122)  && (charCode < 48 || charCode > 57)){
        alert('Sorry only numbers, characters and blank spaces are allowed.')
        return false;
        }
    return true;
}
function select_all_contents(id){
    document.getElementById(id).focus();
    document.getElementById(id).select();
}

//Function to select excluded in contractors export tool
function selectExcluded(id,export_to){
    document.getElementById('export_to').setValue(export_to);
    return false;
}

// Function to avoid enter other letters than numbers
function isNumberKey(evt) {
    var charCode = (evt.which) ? evt.which : event.keyCode
    if (charCode > 31 && (charCode < 48 || charCode > 57)){
        return false;
    }

    return true;
}

function uploadFile(){
    uploaded_data = $('invoice_upload_uploaded_data').value; 
}

function close_div(name_div){

    document.getElementById(name_div).style.display='none';
    return false;
}

function open_div(name_div){

    document.getElementById(name_div).style.display='block';
    document.getElementById(name_div).focus();
    return false;
}

//function get_contractor_details(form){
//    contractor = $(form)['email_letter_contractor_id'].value;
//    new Ajax.Request('/admin/doc_templates/get_contractor_details/' + contractor, {
//        method: 'get',
//        onSuccess: function(transport) {
//            console.log(transport.responseText);
//        }
//    });
//
//}

function submit_email_letter(form,action){
    singl = document.getElementsByName('email_letter[single_multiple]');
    var single = "";
    for(i=0; i< singl.length;i++){
        if (singl[i].checked == true ){
            single = singl[i].value;
        }
    }
    if (single == 'single'){
        if (action == 'Letter') {
            if($(form)['address_line_1'].value.length < 1 &&
                $(form)['address_line_2'].value.length < 1 &&
                $(form)['address_line_3'].value.length < 1 &&
                $(form)['address_line_4'].value.length < 1){
                alert('You must enter an address')
                return
            }
            $(form).target = '_blank'
     
        }
        if (action == 'Email'){
            if( $(form)['address_email'].value.length < 1){
                alert('You must enter an email address')
                return
            }
            if (!echeck($(form)['address_email'].value)){
                return
            }
            $(form).target = '_self'
        }
        if ($(form)['email_letter_contractor_id'].value.length < 1){
            alert('You must select a contractor')
            return
        }

    }

    var doc = false
    var file = ''
    nodelist = $(form)['email_letter[template_type]']
    for (var i = 0; i < nodelist.length; i++) {
        var template = nodelist[i];
        if(template.checked){
            doc = true
            file = template.value
        }

    }

    if (!doc){
        alert('You must select a document')
        return
    }
    $(form)['email_letter_sent_as'].value = action
    $(form).submit()
}

function echeck(str) {

    var at="@"
    var dot="."
    var lat=str.indexOf(at)
    var lstr=str.length
    var ldot=str.indexOf(dot)
    if (str.indexOf(at)==-1){
        alert("Invalid E-mail")
        return false
    }

    if (str.indexOf(at)==-1 || str.indexOf(at)==0 || str.indexOf(at)==lstr){
        alert("Invalid E-mail")
        return false
    }

    if (str.indexOf(dot)==-1 || str.indexOf(dot)==0 || str.indexOf(dot)==lstr){
        alert("Invalid E-mail")
        return false
    }

    if (str.indexOf(at,(lat+1))!=-1){
        alert("Invalid E-mail")
        return false
    }

    if (str.substring(lat-1,lat)==dot || str.substring(lat+1,lat+2)==dot){
        alert("Invalid E-mail")
        return false
    }

    if (str.indexOf(dot,(lat+2))==-1){
        alert("Invalid E-mail")
        return false
    }

    if (str.indexOf(" ")!=-1){
        alert("Invalid E-mail")
        return false
    }

    return true
}

/**
 * DHTML date validation script. Courtesy of SmartWebby.com (http://www.smartwebby.com/dhtml/)
 */
// Declaring valid date character, minimum year and maximum year
var dtCh= "-";
var minYear=1900;
var maxYear=2100;

function isInteger(s){
    var i;
    for (i = 0; i < s.length; i++){
        // Check that current character is number.
        var c = s.charAt(i);
        if (((c < "0") || (c > "9"))) return false;
    }
    // All characters are numbers.
    return true;
}

function stripCharsInBag(s, bag){
    var i;
    var returnString = "";
    // Search through string's characters one by one.
    // If character is not in bag, append to returnString.
    for (i = 0; i < s.length; i++){
        var c = s.charAt(i);
        if (bag.indexOf(c) == -1) returnString += c;
    }
    return returnString;
}

function daysInFebruary (year){
    // February has 29 days in any year evenly divisible by four,
    // EXCEPT for centurial years which are not also divisible by 400.
    return (((year % 4 == 0) && ( (!(year % 100 == 0)) || (year % 400 == 0))) ? 29 : 28 );
}
function DaysArray(n) {
    for (var i = 1; i <= n; i++) {
        this[i] = 31
        if (i==4 || i==6 || i==9 || i==11) {
            this[i] = 30
        }
        if (i==2) {
            this[i] = 29
        }
    }
    return this
}

function isDate(dtStr){
    var daysInMonth = DaysArray(12)
    var pos1=dtStr.indexOf(dtCh)
    var pos2=dtStr.indexOf(dtCh,pos1+1)
    var strDay=dtStr.substring(0,pos1)
    var strMonth=dtStr.substring(pos1+1,pos2)
    var strYear=dtStr.substring(pos2+1)
    strYr=strYear
    if (strDay.charAt(0)=="0" && strDay.length>1) strDay=strDay.substring(1)
    if (strMonth.charAt(0)=="0" && strMonth.length>1) strMonth=strMonth.substring(1)
    for (var i = 1; i <= 3; i++) {
        if (strYr.charAt(0)=="0" && strYr.length>1) strYr=strYr.substring(1)
    }
    month=parseInt(strMonth)
    day=parseInt(strDay)
    year=parseInt(strYr)
    if (pos1==-1 || pos2==-1){
        alert("The date format should be : dd-mm-yyyy")
        return false
    }
    if (strMonth.length<1 || month<1 || month>12){
        alert("Please enter a valid month")
        return false
    }
    if (strDay.length<1 || day<1 || day>31 || (month==2 && day>daysInFebruary(year)) || day > daysInMonth[month]){
        alert("Please enter a valid day")
        return false
    }
    if (strYear.length != 4 || year==0 || year<minYear || year>maxYear){
        alert("Please enter a valid 4 digit year between "+minYear+" and "+maxYear)
        return false
    }
    if (dtStr.indexOf(dtCh,pos2+1)!=-1 || isInteger(stripCharsInBag(dtStr, dtCh))==false){
        alert("Please enter a valid date")
        return false
    }
    return true
}

function ValidateDate(id){
    var dt=document.getElementById(id);
    if (isDate(dt.value)==false){
        dt.focus()
        return false
    }
    return true
}

function ValidateForm(form){
    var dates = document.getElementsByTagName('input');
    for (var i = 0; i < dates.length; i++){
        var date = dates[i];
        if (date.id.indexOf('paid_on_') == 0) {
            if (date.value !=''){
                if (isDate(date.value)==false){
                    date.focus()
                    return false;
                }
            }
        }
    
    };
    $(form).submit();
}

//function submit_contractor(form){
//    email = $('contractor_email').value;
//    company = $('contractor_company').value;
//    same_emails = $('same_emails').value;
//    line_1 = $('address_line_1').value;
//    postcode = $('address_postcode').value;
//    if (company == "") {
//        alert('You must include a Company name.')
//        return false
//    }
//    if (line_1 == ""){
//        alert('You must include at least the first line of the address.')
//        return false
//    }
//    if (postcode == ""){
//        alert('You must include a postcode.')
//        return false
//    }
//    if (!echeck(email)) {
//        return false
//    }
//    if (same_emails) {
//        $('contractor_director_email').value = email;
//        $('contractor_po_email').value = email;
//    }
//    $('contractor_main_office_email').value = email;
//    $(form).submit();
//}

