function LTrim(str){
    var i;
    for(i=0;i<str.length;i++)
    {
        if(str.charAt(i)!=" "&&str.charAt(i)!=" ") break;
    }
    str = str.substring(i,str.length);
    return str;
}

function RTrim(str){
    var i;
    for(i=str.length-1;i>=0;i--){
        if(str.charAt(i)!=" "&&str.charAt(i)!=" ") break;
    }
    str = str.substring(0,i+1);
    return str;
}

function Trim(str){
    return LTrim(RTrim(str));
}


function submitcontact() {

    var overall = true;
    var fname = document.getElementById("fname").value;
    if (empty(fname)) {
        overall=false;
        errorMessage("fnamev","Please enter a name.");
    } else errorMessage("fnamev","");

    var femail = document.getElementById("femail").value;
    if (empty(femail) || !email(femail)) {
        overall=false;
        errorMessage("femailv","Please enter a valid email address. For example fred@domain.com .");
    } else errorMessage("femailv","");

    var fconfirm = document.getElementById("fconfirm").value;
    if (fconfirm!=femail) {
        overall=false;
        errorMessage("fconfirmv","Your confirmation email does not match your first email, please try again.");
    } else errorMessage("fconfirmv","");
    
    

    var fsubjectselect = document.getElementById("fsubject");
    var fsubject = fsubjectselect.options[fsubjectselect.selectedIndex].text;
    if (fsubject=="0") {
        overall=false;
        errorMessage("fsubjectv","Please enter a subject.");
    } else {
        document.getElementById("hiddenFsubject").value=Trim(fsubjectselect.options[fsubjectselect.selectedIndex].text);
        errorMessage("fsubjectv","");
    }



    var showref = fsubject!="Routes/Bus stops/Timetables" && fsubject!="Requesting a route" && fsubject!="Fares" && fsubject!="Internet Banking";
    if (showref) {
        var frefn1 = document.getElementById("freferencen1").value;
        var frefn2 = document.getElementById("freferencen2").value;
        var frefn3 = document.getElementById("freferencen3").value;
        var oldrefv = false;
        var newrefv = frefn1.length==7 && frefn2.length==4 && frefn3.length==6;
        var oldrefentered = false;
        var newrefentered = !empty(frefn1) || !empty(frefn2) || !empty(frefn3);

        var both = oldrefentered && newrefentered;
        var neith = !oldrefentered && !newrefentered;

        if (both) {
            overall=false;
            errorMessage("freferencev","Please only enter one booking reference.");
        } else if (((fsubject=='Cancel Booking' || fsubject=="Excess/oversized luggage" || fsubject=="I had a bad experience with nakedbus.com" || fsubject=="Lost property") && neith)||(!neith && !oldrefv && !newrefv)) {
            overall=false;
            errorMessage("freferencev","Please ensure you have filled in the booking reference correctly.");
        } else errorMessage("freferencev","");
    }

    if (fsubject=="Lost property") {
        var fphone = document.getElementById("fphone").value;
        if (empty(fphone)) {
            overall=false;
            errorMessage("fphonev","Please enter a contact phone number.");
        } else {
            errorMessage("fphonev","");
        }
    }
    if (fsubject=="Requesting a route") {
        var rrnfrom = document.getElementById("rrnfrom").value;
        var rrnto = document.getElementById("rrnto").value;
        var rrsfrom = document.getElementById("rrsfrom").value;
        var rrsto = document.getElementById("rrsto").value;
        var both = (!empty(rrnfrom) || !empty(rrnto)) && (!empty(rrsfrom) || !empty(rrsto));
        var neith = (empty(rrnfrom) || empty(rrnto)) && (empty(rrsfrom) || empty(rrsto));
        if (both || neith) {
            overall=false;
            errorMessage("rrv","Please fill in a from and to destination for one island.");
        } else errorMessage("rrv","");

        var form = document.getElementById("contactform");
        var rrtravel = getradio(form.rrtravel);
        if (rrtravel=="") {
            overall=false;
            errorMessage("rrtravelv","Please choose a time of travel.");
        } else errorMessage("rrtravelv","");
        var rrreturn = getradio(form.rrreturn);
        if (rrreturn=="") {
            overall=false;
            errorMessage("rrreturnv","Please choose a return time of travel.");
        } else errorMessage("rrreturnv","");
        var rrpurpose = getradio(form.rrpurpose);
        var other = document.getElementById("rrother").value;
        if (rrpurpose=="" || (rrpurpose=="other" && empty(other))) {
            overall=false;
            errorMessage("rrpurposev","Please enter the purpose for the journey.");
        } else errorMessage("rrpurposev","");
    }
    return overall;
}
function getradio(element) {
    for (var i=0; i<element.length; i++) {
        if (element[i].checked) return element[i].value;
    }
    return "";
}
function empty(element) {
    return element==null || element.length==0;
}
function errorMessage(element, message) {
    element = document.getElementById(element);
    if (element) {
        element.innerHTML=message;
    }
}
function email(element) {
    var result = /\w{1,}[@][\w\-]{1,}([.]([\w\-]{1,})){1,3}$/.test(element);
    return result;
}

function swap(id,yes,span) {
    var theEl = document.getElementById(id);
    if (theEl) {
        if (yes) theEl.style.display=(span?'inline':'block');
        else theEl.style.display='none';
    }
}

function enquiry(id) {
    id=Trim(id);
    swap("mainfields",id!="");
    if (id=="Excess/oversized luggage") {
        document.getElementById("fmessagelabel").innerHTML="Description of item(s)";
    } else if (id=="Lost property") {
        document.getElementById("fmessagelabel").innerHTML="Description of items<br/>(please provide as much<br/>detail as possible)";
    } else {
        document.getElementById("fmessagelabel").innerHTML="Message";
    }

    swap("fmessagedesc",id=="Excess/oversized luggage");
    swap("canweuse",id=="I had a good experience with nakedbus.com",false);
    swap("showref",id!="Internet Banking" && id!="Routes/Bus stops/Timetables" && id!="Requesting a route" && id!="Fares",false);
    swap("showoptional",id!="Excess/oversized luggage" && id!="I had a bad experience with nakedbus.com" && id!="Lost property" && id!="Cancel Booking",true);
    swap("netsection",id=="Internet Banking");
    swap("cancelsection1",id=="Cancel Booking");
    swap("cancelsection2",id=="Cancel Booking");
    swap("messagesection",id!="Cancel Booking" && id!="Requesting a route");
    swap("lostpropsection",id=="Lost property");
    swap("phonesection",id=="Lost property");
    swap("changebooksection",id=="Changing a booking");
    //	swap("routessection",id=="Routes/Bus stops/Timetables");
    //	swap("reqroutesection",id=="Requesting a route");
    //	swap("reqroutesection2",id=="Requesting a route");
    swap("faressection",id=="Fares");
    swap("luggagesection",id=="Excess/oversized luggage");
    // swap("othersection",id=="Other" || id=="I want to charter a bus" || id=="Vacancies");
    if (id=="Lost reference number") {
        document.getElementById("showref").style.display='none';
    }
}
