function gid (id)
{
    return document.getElementById(id);
}

function isMail (mail)
{
    var regExp = new RegExp("[A-Za-z0-9_]+([-+.][A-Za-z0-9_]+)*@[A-Za-z0-9_]+([-.][A-Za-z0-9_]+)*\\.[A-Za-z0-9_]{2,}([-.][A-Za-z0-9_]+)*");
    var result = regExp.exec(mail);
    return (null == result) ? false : true;
}

function isNotEmpty (value)
{
    var regExp = new RegExp("(.)+");
    var result = regExp.exec(value);
    return (null == result) ? false : true;
}

function validation ()
{
    var errors = '';

    if (false === isNotEmpty(gid('name').value)) {
        errors += "Please enter Name\n";
	}

    if (false === isNotEmpty(gid('phone').value)) {
        errors += "Please enter Phone\n";
	}
	
    if (false === isMail(gid('mail').value)) {
        errors += "Please enter E-mail address\n";
	}

    $.get("php/check_antibot.php?sec_code=" + $('#sec_code').val(), function(data){
        if ('f' == data){
            errors += "Please enter valid Captcha\n";
        }
        if ('' != errors) {
            alert(errors);
            return false;
        } else {
            $('form').submit();
        }
    });
    return false;
}

function validation2 ()
{
    var errors = '';

    if (false === isNotEmpty(gid('name').value)) {
        errors += "Please enter Name\n";
	}

    if (false === isNotEmpty(gid('phone').value)) {
        errors += "Please enter Phone\n";
	}
	
    if (false === isMail(gid('email').value)) {
        errors += "Please enter E-mail address\n";
	}

    if ('' != errors) {
        alert(errors);
        return false;
    }

    return true;
}

function validation_comments()
{
    var errors = '';

    if (false === isNotEmpty(gid('message').value)) {
        errors += "Please enter a comment\n";
	}

    if (false === isMail(gid('email').value)) {
        errors += "Please enter E-mail address\n";
	}

    $.get("php/check_antibot.php?sec_code=" + $('#sec_code').val(), function(data){
        if ('f' == data){
            errors += "Please enter valid Captcha\n";
        }
        if ('' != errors) {
            alert(errors);
            return false;
        } else {
            $('form').submit();
        }
    });
    return false;
}


function validation_dates()
{
    var errors = '';

    if (false === isNotEmpty(gid('name').value)) {
        errors += "Please enter Name\n";
	}

    if (false === isNotEmpty(gid('phone').value)) {
        errors += "Please enter Phone\n";
	}
	
    if (false == isMail(gid('mail').value)) {
        errors += "Please enter E-mail address\n";
	}

	
	//puday, pumonth, puhourminute
	//h,m,s,m,d,y
	
	//Extract time into hours and minutes, then make timestamp
	var puhour = substr(gid('puhourminute').value, 0, 2); 
	var puminute = substr(gid('puhourminute').value, 2, 2); 
	var dohour = substr(gid('dohourminute').value, 0, 2); 
	var dominute = substr(gid('dohourminute').value, 2, 2);
	var puday = gid('puday').value;
	var doday = gid('doday').value;
	var pumonth = gid('pumonth').value;
	var domonth = gid('domonth').value;
	var pudate = mktime(puhour, puminute, 0, pumonth, puday, 2010);
	var dodate = mktime(dohour, dominute, 0, domonth, doday, 2010);
	
	if (dodate <== pudate) {
        errors += "Please select a drop off date later than the pickup date\n";
	}
	
	
    $.get("php/check_antibot.php?sec_code=" + $('#sec_code').val(), function(data){
        if ('f' == data){
            errors += "Please enter valid Captcha\n";
        }
        if ('' != errors) {
            alert(errors);
            return false;
        } else {
			return false;
        }
    });
    return false;
}



function mktime() {
    // http://kevin.vanzonneveld.net
    // +   original by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
    // +   improved by: baris ozdil
    // +      input by: gabriel paderni
    // +   improved by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
    // +   improved by: FGFEmperor
    // +      input by: Yannoo
    // +   bugfixed by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
    // +      input by: jakes
    // +   bugfixed by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
    // +   bugfixed by: Marc Palau
    // +   improved by: Brett Zamir (http://brett-zamir.me)
    // +      input by: 3D-GRAF
    // +   bugfixed by: Brett Zamir (http://brett-zamir.me)
    // +      input by: Chris
    // +    revised by: Theriault
    // %        note 1: The return values of the following examples are
    // %        note 1: received only if your system's timezone is UTC.
    // *     example 1: mktime(14, 10, 2, 2, 1, 2008);
    // *     returns 1: 1201875002
    // *     example 2: mktime(0, 0, 0, 0, 1, 2008);
    // *     returns 2: 1196467200
    // *     example 3: make = mktime();
    // *     example 3: td = new Date();
    // *     example 3: real = Math.floor(td.getTime() / 1000);
    // *     example 3: diff = (real - make);
    // *     results 3: diff < 5
    // *     example 4: mktime(0, 0, 0, 13, 1, 1997)
    // *     returns 4: 883612800 
    // *     example 5: mktime(0, 0, 0, 1, 1, 1998)
    // *     returns 5: 883612800 
    // *     example 6: mktime(0, 0, 0, 1, 1, 98)
    // *     returns 6: 883612800 
    // *     example 7: mktime(23, 59, 59, 13, 0, 2010)
    // *     returns 7: 1293839999
    // *     example 8: mktime(0, 0, -1, 1, 1, 1970)
    // *     returns 8: -1
    var d = new Date(), r = arguments, i = 0,
        e = ['Hours', 'Minutes', 'Seconds', 'Month', 'Date', 'FullYear'];

    for (i = 0; i < e.length; i++) {
        if (typeof r[i] === 'undefined') {
            r[i] = d['get' + e[i]]();
            r[i] += (i === 3); // +1 to fix JS months.
        } else {
            r[i] = parseInt(r[i], 10);
            if (isNaN(r[i])) {
                return false;
            }
        }
    }
    
    // Map years 0-69 to 2000-2069 and years 70-100 to 1970-2000.
    r[5] += (r[5] >= 0 ? (r[5] <= 69 ? 2e3 : (r[5] <= 100 ? 1900 : 0)) : 0);
    
    // Set year, month (-1 to fix JS months), and date.
    // !This must come before the call to setHours!
    d.setFullYear(r[5], r[3] - 1, r[4]);
    
    // Set hours, minutes, and seconds.
    d.setHours(r[0], r[1], r[2]);

    // Divide milliseconds by 1000 to return seconds and drop decimal.
    // Add 1 second if negative or it'll be off from PHP by 1 second.
    return (d.getTime() / 1e3 >> 0) - (d.getTime() < 0);
}

