var timeout	= 500;
var closetimer	= 0;
var ddmenuitem	= 0;

// open hidden layer
function mopen(id) {
    // cancel close timer
    mcancelclosetime();
    // close old layer
    if(ddmenuitem) ddmenuitem.style.visibility = 'hidden';
    // get new layer and show it
    ddmenuitem = document.getElementById(id);
    ddmenuitem.style.visibility = 'visible';
}
// close showed layer
function mclose() {
    if(ddmenuitem) ddmenuitem.style.visibility = 'hidden';
}
// go close timer
function mclosetime() {
    closetimer = window.setTimeout(mclose, timeout);
}
// cancel close timer
function mcancelclosetime() {
    if(closetimer) {
        window.clearTimeout(closetimer);
        closetimer = null;
    }
}
// close layer when click-out
document.onclick = mclose;

function externalLinks() {
    if (!document.getElementsByTagName) return;
    var anchors = document.getElementsByTagName("a");
    for (var i=0; i<anchors.length; i++) {
        var anchor = anchors[i];
        if (anchor.getAttribute("href") &&
            anchor.getAttribute("rel") == "external")
            anchor.target = "_blank";
    }
}
window.onload = externalLinks;

buyNow_image = new Image();
buyNow_image.src = "/images/buynow.jpg";
buyNow_mouseover_image = new Image();
buyNow_mouseover_image.src = "/images/buynow_on.jpg";
send_image = new Image();
send_image.src = "/images/send.gif";
send_mouseover_image = new Image();
send_mouseover_image.src = "/images/send_on.gif";

bookNow_image = new Image();
bookNow_image.src = "/images/abs_booknow.jpg";
bookNow_mouseover_image = new Image();
bookNow_mouseover_image.src = "/images/abs_booknow_on.jpg";
requestCallback_image = new Image();
requestCallback_image.src = "/images/abs_callback.jpg";
requestCallback_mouseover_image = new Image();
requestCallback_mouseover_image.src = "/images/abs_callback_on.jpg";
moreInfo_image = new Image();
moreInfo_image.src = "/images/abs_moreinfo.jpg";
moreInfo_mouseover_image = new Image();
moreInfo_mouseover_image.src = "/images/abs_moreinfo_on.jpg";
testimonials_image = new Image();
testimonials_image.src = "/images/abs_testimonials.jpg";
testimonials_mouseover_image = new Image();
testimonials_mouseover_image.src = "/images/abs_testimonials_on.jpg";

function swap(){
    if (document.images){
        for (var x=0;
            x<swap.arguments.length;
            x+=2) {
            document[swap.arguments[x]].src = eval(swap.arguments[x+1] + ".src");
        }
    }
}

function refreshTestimonials() {
    var i = document.getElementById('i').value;
    if (i >=0 && i < 38 && i != 37) {
        i++;
    } else {
        i = 0;
    }
    document.getElementById('i').value = i;
    $("#rtestimonial").fadeOut(function(){
        $("#rtestimonial").load("/testimonials/rotate.php?id=" + i, false, function() {
            $("#rtestimonial").fadeIn();
        });
    })
}

$(function() {

    $('a[href*=#]').click(function() {
        if (location.pathname.replace(/^\//,'') == this.pathname.replace(/^\//,'')
            && location.hostname == this.hostname) {
            var $target = $(this.hash);
            $target = $target.length && $target || $('[name=' + this.hash.slice(1) +']');
            if ($target.length) {
                var targetOffset = $target.offset().top;
                $('html,body').animate({
                    scrollTop: targetOffset
                }, 1000);
                return false;
            }
        }
    });

    refreshTestimonials();
    //setInterval("refreshTestimonials()", 10000);
    window.setInterval(refreshTestimonials, 10000);

    // global variables
    var firstname = $('#firstname');
    var firstname_error = $('#firstname_error');
    var surname = $('#surname');
    var surname_error = $('#surname_error');
    var telephone = $('#telephone');
    var telephone_error = $('#telephone_error');
    var ref = $('#ref');
    var errorList = 0;

    //On blur
    firstname.blur(validate_firstname);
    surname.blur(validate_surname);
    telephone.blur(validate_telephone);
    //On key press
    firstname.keyup(validate_firstname);
    surname.keyup(validate_surname);
    telephone.keyup(validate_telephone);

    // validation functions
    function validate_firstname() {
        if (firstname.val() == "") {
            firstname.addClass("ajax_error");
            firstname_error.text("Required");
            if (errorList == 0) {
                firstname.focus();
                errorList++;
            }
            return false;
        } else {
            firstname.removeClass("ajax_error");
            firstname_error.text("");
            firstname_error.removeClass("formerror");
            return true;
        }
    }

    function validate_surname() {
        if (surname.val() == "") {
            surname.addClass("ajax_error");
            surname_error.text("Required");
            if (errorList == 0) {
                surname.focus();
                errorList++;
            }
            return false;
        } else {
            surname.removeClass("ajax_error");
            surname_error.text("");
            surname_error.removeClass("formerror");
            return true;
        }
    }

    function verifyPhoneNumber(phone) {
        var rx1 = /^0\d{4}\s?\d{6}$/
        var rx2 = /^0\d{2}\s?\d{4}\s?\d{4}$/
        var rx3 = /^0\d{3}\s?\d{3}\s?\d{4}$/
        var rx4 = /^0\d{10,15}$/

        var p=new Array(phone);
        for (i=0; i<p.length; i++){
            var tested=rx1.test(p[i])
            if(!tested) tested=rx2.test(p[i])
            if(!tested) tested=rx3.test(p[i])
            if(!tested) {
                return true;
            } else {
                return false;
            }
        }

        for (i=0; i<p.length; i++){
            var newp=p[i].replace(/\s*/g,"");
            var tested=rx4.test(newp)
            if(!tested) {
                return true;
            } else {
                return false;
            }
        }
    }

    function validate_telephone() {
        if ( verifyPhoneNumber( telephone.val() )) {
            telephone.addClass("ajax_error");
            telephone_error.text("Required");
            if (errorList == 0) {
                telephone.focus();
                errorList++;
            }
            return false;
        } else {
            telephone.removeClass("ajax_error");
            telephone_error.text("");
            telephone_error.removeClass("formerror");
            return true;
        }
    }

    $("#submitBtn").click(function() {

        errorList = 0;

        if( validate_firstname() & validate_surname() & validate_telephone() ) {
            var dataString = 'firstname=' + firstname.val() + '&surname=' + surname.val() + '&telephone=' + telephone.val()  + '&ref=' + ref.val();
        } else {
            return false;
        }

        $.ajax({
            type: "POST",
            url: "/callback.php",
            data: dataString,
            success: function() {
                $('#callbackForm').fadeOut('slow', function() {
                    $('#callbackForm').html("<h3>Thank You</h3><p class='message'>Your Request for a Callback has been submitted. We will be in contact with you shortly!</p><div style=\"text-align:right\"><a href = \"javascript:void(0)\" onclick=\"document.getElementById('light').style.display='none';document.getElementById('fade').style.display='none'\">Close Window</a></div>");
                    $('#callbackForm').fadeIn('slow');
                // Animation complete.
                });
            },
            error: function() {
                $('#callbackForm').fadeOut('slow', function() {
                    $('#callbackForm').html("<h3>Error</h3><p class='message'>Whoops, sorry we're having a problem with our Callback system. Our technical support have been notified, and we will get this resolved as quickly as possible.</p><div style=\"text-align:right\"><a href = \"javascript:void(0)\" onclick=\"document.getElementById('light').style.display='none';document.getElementById('fade').style.display='none'\">Close Window</a></div>");
                    $('#callbackForm').fadeIn('slow');
                // Animation complete.
                });
            }
        });
        //$("#fLoader").empty();
        return false;
    });
})
