jQuery.noConflict();

var header = new Array();
var guests = new Array();
var rTypes = new Array();
var currency = "£";
var roomRow =  document.getElementById("room");
var last = 1;

if(get_cookie("lang") == "en_GB"){
    header[0] = "Your Selection";
    header[1] = "Room Type";
    header[2] = "Tariff";
    header[3] = "Rate per night";
    header[4] = "# of Selection";
    header[5] = "";
}
else if(get_cookie("lang") == "tr_TR"){
    header[0] = "Seçiminiz";
    header[1] = "Oda Tipi";
    header[2] = "Tarife";
    header[3] = "Gecelik ücret";
    header[4] = "Oda sayısı";
    header[5] = "";
}
else{
    header[0] = "Your Selection";
    header[1] = "Room Type";
    header[2] = "Tariff";
    header[3] = "Rate per night";
    header[4] = "# of Selection";
    header[5] = "";
}

function populateDiv(div_id,content)
{
    //alert(jQuery("#"+div_id).length);
    if ( jQuery("#"+div_id).length > 0 )
    {
        //alert(content);
        document.getElementById(div_id).innerHTML = content;
        jQuery(div_id).fadeIn(100);
    }
	
}

function jomres_isChecked(ischecked){
    if (ischecked == true){
        document.adminForm.boxchecked.value++;
    }
    else {
        document.adminForm.boxchecked.value--;
    }
}

function jomres_checkAll( n ) {
    var f = document.adminForm;
    var c = f.toggle.checked;
    var n2 = 0;
    for (i=0; i < n; i++) {
        cb = eval( 'f.cb' + i );
        if (cb) {
            cb.checked = c;
            n2++;
        }
    }
    if (c) {
        document.adminForm.boxchecked.value = n2;
    } else {
        document.adminForm.boxchecked.value = 0;
    }
}

function jomres_submitbutton(pressbutton) {
    document.adminForm.task.value=pressbutton;
    try {
        document.adminForm.onsubmit();
    }
    catch(e){}
    document.adminForm.submit();
}

function disableSubmitButton (button) 
{
    if (typeof button.disabled != 'undefined')
        button.disabled = true;
    else if (!button.buttonDisabled)
    {
        button.oldValue = button.value;
        button.oldOnclick = button.onclick;
        button.value = 'DISABLED';
        button.onclick = cancelAction;
        button.buttonDisabled = true;
    }
    document.getElementById("submitbutton").className="";
}
	
function enableSubmitButton (button) 
{
    if (typeof button.disabled != 'undefined')
        button.disabled = false;
    else if (button.buttonDisabled)
    {
        button.value = button.oldValue;
        button.onclick = button.oldOnclick;
        button.buttonDisabled = false;
    }
    var exists = document.getElementById("roomalert_top");
    if (exists != null)
    {
        document.getElementById("submitbutton").className="oktobook";
        document.getElementById("roomalert_top").className="roomalert_off";
        document.getElementById("roomalert_bottom").className="roomalert_off";
    }
    document.getElementById('submitbutton').focus();
}

	
function fadeIn(objId,opacity) {
    if (document.getElementById) {
        obj = document.getElementById(objId);
        if (opacity <= 100) {
            setOpacity(obj, opacity);
            opacity += 8;
            window.setTimeout("fadeIn('"+objId+"',"+opacity+")", 100);
        }
    }
}

function setOpacity(obj, opacity) 
{
    opacity = (opacity == 100)?99.999:opacity;
    // IE/Win
    obj.style.filter = "alpha(opacity:"+opacity+")";
    // Safari 1.2, Konqueror
    obj.style.KHTMLOpacity = opacity/100;
    // Older Mozilla and Firefox
    obj.style.MozOpacity = opacity/100;
    // Safari 1.2, newer Firefox and Mozilla, CSS3
    obj.style.opacity = opacity/100;
}

//////////////////////////////////////////////////////////////////////////////////////////////////////////////
//	 Show hide stuff
//////////////////////////////////////////////////////////////////////////////////////////////////////////////

function hidediv(elementName) 
{
}

function showdiv($elementName) 
{
}

///////////////////////////////////////
//
//	Generic onload by Brothercake
//	http://www.brothercake.com/
//
///////////////////////////////////////

//onload function
function generic()
{
    if ( toload.length > 0 )
    {
        for (x in toload)
        {
            eval(toload[x]);
        }
    }
//if ( document.ajaxform !=undefined )
//disableSubmitButton(document.ajaxform.confirmbooking);
}
	
//setup onload function
var undefined;
var toload=new Array();
var templateVersion = 2.5;

if(typeof window.addEventListener != 'undefined')
{
    //.. gecko, safari, konqueror and standard
    window.addEventListener('load', generic, false);
}
else if(typeof document.addEventListener != 'undefined')
{
    //.. opera 7
    document.addEventListener('load', generic, false);
}
else if(typeof window.attachEvent != 'undefined')
{
    //.. win/ie

    window.attachEvent('onload', generic);
}

//** remove this condition to degrade older browsers
else
{
    //.. mac/ie5 and anything else that gets this far
	
    //if there's an existing onload function
    if(typeof window.onload == 'function')
    {
        //store it
        var existing = onload;
		
        //add new onload handler
        window.onload = function()
        {
            //call existing onload function
            existing();
            //call generic onload function
            generic();
        };
    }
    else
    {
        //setup onload function
        window.onload = generic;
    }
}

//////////////////////////////////////////////////////////////////////////////////////////////////////////////
//	 Ajax get response stuff
//////////////////////////////////////////////////////////////////////////////////////////////////////////////

function createRoomGuests(field,value)
{
    blockInterface(field,200);
    jQuery.get(ajaxurl+'&task=handlereq',
    {
        field: field,
        'value': value
    },
    function(data){
        copyRoomRow(value);
        show_log(field);
    }
    );
}

function setGuestValue(field,value)
{
    blockInterface(field,1000);
    jQuery.get(ajaxurl+'&task=handlereq',
    {
        field: field,
        'value': value
    },
    function(data){
        setGuest_value(value);
        show_log(field);
    }
    );
}

function setRoomTypeValue(field,value)
{
    blockInterface(field,1000);
    //alert(field,value);
    jQuery.get(ajaxurl+'&task=handlereq',
    {
        field: field,
        'value': value
    },
    function(data){
        setRoomType_value(value);
        show_log(field);
    }
    );
}


function getResponse_particulars(field,value) 
{
    HideRoomsList();
    blockInterface(field,200);
    jQuery.get(ajaxurl+'&task=handlereq',
    {
        field: field,
        'value': value
    },
    function(data)
    {
        showRoomsList(data);
        show_log(field);
    }
    );
}

function getResponse_checkdate(field,value)
{
    HideRoomsList();
    blockInterface(field,200);
    jQuery.get(ajaxurl+'&task=handlereq',
    {
        field: field,
        'value': value
    },
    function(data)
    {
        //showRoomsList(data);
        show_log(field);
    }
    );
}

function getResponse_guesttype(typeid,value) 
{
    HideRoomsList();
    blockInterface('guesttype',200);
    jQuery.get(ajaxurl+'&task=handlereq',
    {
        field: 'guesttype',
        'typeid': typeid ,
        'value': value
    },
    function(data)
    {
        showRoomsList(data);
        show_log('guesttype');
    }
    );
}

function getResponse_rooms(field,value) {
    HideRoomsList();
    blockInterface(field,200);
    jQuery.get(ajaxurl+'&task=handlereq',
    {
        field: field,
        'value': value
    },
    function(data){
        showRoomsList(data);
        show_log(field);
    }
    );
}

function getResponse_room(field,value,choice) {
    //HideRoomsList();
    blockInterface(field,200);
    jQuery.get(ajaxurl+'&task=handlereq',
    {
        field: field,
        'value': value
    },
    function(data){
        updateAvailability(value);
        createSelectedRooms(value,choice);
        show_log(field);
    }
    );
}

function getResponse_extras(field,value,theId) {
    blockInterface(field,200);
    jQuery.get(ajaxurl+'&task=handlereq',
    {
        field: field,
        'value': value
    },
    function(data)
    {
        eval(data);
        show_log(field);
    }
    );
}

function getResponse_extrasquantity(field,value,theId) {
    blockInterface(field,200);
    jQuery.get(ajaxurl+'&task=handlereq',
    {
        field: field,
        'value': value,
        'theId': theId
    },
    function(data)
    {
        eval(data);
        show_log(field);
    }
    );
}


function getResponse(field,value) {
    jQuery.get(ajaxurl+'&task=handlereq',
    {
        field: field,
        'value': value
    },
    function(data)
    {
        eval(data);
        show_log(field);
    }
    );
}

function getResponse_existing(field,value) {
    blockInterface(field,200);
    jQuery.get(ajaxurl+'&task=handlereq',
    {
        field: field,
        'value': value
    },
    function(data)
    {
        eval(data);
        jQuery('div.block_ui_bookingform').unblock();
    //show_log(field);
    }
    );
}

function getResponse_guest() 
{
    var firstname 		=jQuery('#firstname').val();
    var surname 		=jQuery('#surname').val();
    var house               =jQuery('#house').val();
    var street 		=jQuery('#street').val();
    var town 		=jQuery('#town').val();
    var region 		=jQuery('#region').val();
    var postcode 		=jQuery('#postcode').val();
    var exists              = document.ajaxform.country;
    if (exists != null)
        var country 	= document.ajaxform.country[document.ajaxform.country.selectedIndex].value;
    var tel_landline 	=jQuery('#tel_landline').val();
    var tel_mobile 		=jQuery('#tel_mobile').val();
    var eemail 		=jQuery('#eemail').val();

    url = ajaxurl+'&task=handlereq';
    result =checkaddressfields();

    if (result)
    {
        var addressString= firstname+"~"+surname+"~"+house+"~"+street+"~"+town+"~"+region+"~"+postcode+"~"+country+"~"+tel_landline+"~"+tel_mobile+"~"+eemail;
        blockInterface("guestdetails",200);
        jQuery.get(url,
        {
            field: 'addressstring',
            'value': addressString
        },
        function(data)
        {
            eval(data);
            show_log("addressstring");
        });
				
    }
}

function show_log(lastfield) {
    jQuery.get(ajaxurl+'&task=handlereq',
    {
        field: 'show_log',
        'lastfield': lastfield
    },
    function(data)
    {
        eval(data);
        jQuery('div.block_ui_bookingform').unblock();
    }
    );
}


function blockInterface(field,fadetime)
{
    //jQuery.extend(jQuery.blockUI.defaults.overlayCSS, { backgroundColor: '#fff', opacity: '0.5'  });
	
    jQuery.blockUI.defaults.overlayCSS.backgroundColor = '#000';
    jQuery.blockUI.defaults.overlayCSS.opacity = '0.5';
	
    jQuery.blockUI.defaults.pageMessage = "Please be patient...";
    jQuery.blockUI.defaults.fadeTime = fadetime;
    jQuery.unblockUI({
        fadeOut:true
    });
	
    if (field == "guesttype")
        message = blockui_recheckingroomavailability;
    if (field == "room" || field == "arrival_date" || field == "departure_date")
        message = blockui_changingroomselection;
    if (field == "arrivalDate")
        message = blockui_recheckingroomavailability;
    if (field == "arrival_period")
        message = blockui_recheckingroomavailability;
    if (field == "departureDate")
        message = blockui_recheckingroomavailability;
    if (field == "departure_period")
        message = blockui_recheckingroomavailability;
    if (field == "smoking")
        message = blockui_recheckingroomavailability;
    if (show_extras == true)
    {
        if (field == "extras" )
            message = blockui_changingextra;
        if (field == "extrasquantity")
            message = blockui_changingextra;
    }
    if (field == "requestedRoom" || field == "room_number" )
        message = blockui_changingroomselection;
		
    if (field == "guestdetails")
        message = blockui_updatingaddress;
    if (field == "firstname")
        message = blockui_recheckingroomavailability;
    if (field == "surname")
        message = blockui_recheckingroomavailability;
    if (field == "house")
        message = blockui_recheckingroomavailability;
    if (field == "street")
        message = blockui_recheckingroomavailability;
    if (field == "town")
        message = blockui_recheckingroomavailability;
    if (field == "region")
        message = blockui_recheckingroomavailability;
    if (field == "postcode")
        message = blockui_recheckingroomavailability;
    if (field == "country")
        message = blockui_recheckingroomavailability;
    if (field == "tel_landline")
        message = blockui_recheckingroomavailability;
    if (field == "tel_mobile")
        message = blockui_recheckingroomavailability;
    if (field == "email")
        message = blockui_recheckingroomavailability;
		
    if (field == "addresserror")
        message = blockui_addressinputerror;
    if (field == "existingCustomers")
        message = blockui_updatingaddress;

    if (field == "")
        message = blockui_recheckingroomavailability;
    //jQuery('div.block_ui_bookingform').block('<img src="'+rel_path+'/jomres/images/31.gif" /> <h3>'+message+'</h3>',{ border:'1px solid #016191'});

    jQuery('div.block_ui_bookingform').block({
        message: '<img src="'+rel_path+'/jomres/images/31.gif" /> <h3>'+message+'</h3>',
        css:	{
            padding: '15px', 
            '-webkit-border-radius': '10px',
            '-moz-border-radius': '10px'
        }
    });
}

	
function showRoomsList(req)
{
    var rooms = req.split("~");
    buildSelected(rooms[0]) ;
    buildAvailable(rooms[1]);
    ShowRoomsList();
    return false;
}

function HideRoomsList()
{
    jQuery("div.roomsListWrapper").fadeOut("slow",1000);
    //jQuery("div.roomsListWrapper").hide("slow");
    //jQuery("div.roomsListWrapper").find("div.roomsListInnerWrapper:visible").slideUp("slow");
    return false;
}

function ShowRoomsList()
{
    jQuery("div.roomsListWrapper").fadeIn("slow",1000);
    //jQuery("div.roomsListWrapper").show("slow");
    //jQuery("div.roomsListWrapper").find("div.roomsListInnerWrapper").slideDown("slow");
    return false;
}
	
function buildSelected(string)
{
    //alert(string);
    if (string != undefined)
    {
        if ( string.length > 0 )
            populateDiv("selectedRooms",string);
    //document.getElementById("selectedRooms").innerHTML = string;
    }
}

function buildAvailable(string)
{
    //alert(string);
    if (string != undefined)
    {
        if ( string.length > 0 )
            populateDiv("availRooms",string);
    //document.getElementById("availRooms").innerHTML = string;
    }
}


function createSelectedRooms(div_id,choice)
{
    switch (choice){
        case "add":
            var row0,tableDiv,table, cellSelection, cellType, cellTariff, cellRate;
            if( checkElementExists("roomslist_noroomsselected"))
                removeElement("roomslist_noroomsselected");
            if( checkElementExists("selectionTable") ){
                table = document.getElementById("selectionTable");
                if( table.rows.lenght <= 0 ){
                    row0 = createTableHeader(table,"tableheader",5);
                }
            } else {
                table = createObject("selectedRooms","table","selectionTable","bformleftcol",null );
                table.setAttribute('cellspacing','1');
                table.setAttribute('cellpadding','1');
                table.setAttribute('align','center');
                addElement("selectedRooms",table);
                //alert(table.rows.length);
                if( table.rows.length <= 0 ){
                    row0 = createTableHeader(table,"tableheader",5);
                }
            }
            if( checkElementExists(div_id) ) {
                updateRoom(div_id);
                updatePrice(div_id,"add");
            }else{
                addRoom(table,div_id);
                updatePrice(div_id,"add");
            }
            break;
        case "remove":
            removeRoom(div_id);
            updatePrice(div_id,"subtract");
            break;
    }

}
    
function addRoom(table,room_id)
{
    var name = updateValue(room_id,"name");
    var type = updateValue(room_id,"type");
    var tariff = updateValue(room_id,"title");
    var rate = updateValue(room_id,"rate");
    var count = updateValue(room_id,"count");
    var cInput = document.createElement("input");
    cInput.setAttribute('type','hidden');
    cInput.setAttribute('id',room_id+"-cinput");
    var rmBtn = document.createElement("input");
    rmBtn.setAttribute('class','button');
    rmBtn.setAttribute('type','button');
    rmBtn.setAttribute('value','Remove');
    var btnFunction = "getResponse_room('requestedRoom','"+room_id+"','remove')";
    rmBtn.setAttribute('onClick',btnFunction);
    var idName = "" + room_id + "-name";
    var idType = "" + room_id + "-type";
    var idTitle = "" + room_id + "-title";
    var idRate = "" + room_id + "-rate";
    var idCount = "" + room_id + "-count";
    if( checkElementExists("selectionTable") ){
        var lastRow = table.insertRow(table.rows.length);
        lastRow.setAttribute('id',room_id)
        var cellName = lastRow.insertCell(0);
        var cellType = lastRow.insertCell(1);
        var cellTariff = lastRow.insertCell(2);
        var cellRate =  lastRow.insertCell(3);
        var cellCount = lastRow.insertCell(4);
        var cellButton = lastRow.insertCell(5);

        var divName,divType,divTitle,divRate,divCount;

        divName = document.createElement("div");
        divName.setAttribute('id', idName);
        divName.innerHTML = name;

        divType = document.createElement("div");
        divType.setAttribute('id', idType);
        divType.innerHTML = type;

        divTitle = document.createElement("div");
        divTitle.setAttribute('id', idTitle);
        divTitle.innerHTML = tariff;

        divRate = document.createElement("div");
        divRate.setAttribute('id', idRate);
        divRate.innerHTML = rate;

        divCount = document.createElement("div");
        divCount.setAttribute('id', idCount);
        divCount.innerHTML = count;
        cInput.setAttribute('value',count);

        cellName.appendChild(divName);
        cellType.appendChild(divType);
        cellTariff.appendChild(divTitle);
        cellRate.appendChild(divRate);
        cellCount.appendChild(divCount);
        cellCount.appendChild(cInput);
        cellButton.appendChild(rmBtn);
    }
}

function removeRoom(div_id)
{
    var countId = "" + div_id + "-count";
    var count = document.getElementById(countId).innerHTML;
    count = parseInt(count);
    if ( count != 1 ){
        count--;
        document.getElementById(countId).innerHTML = count;
    }else
        removeElement(div_id);
    return true;
        
}

function updatePrice(room_id,choice){
    var pRateId = "" + room_id + "-rate"; //rate div id
    if(checkElementExists(pRateId))
        var pRate = document.getElementById(pRateId).innerHTML; //rate value
    pRate = pRate.split(currency);
    pRate = parseFloat(pRate[1]);
    if( checkElementExists(room_id+"-count") )
        var pNight = parseInt(document.getElementById(room_id+"-count").innerHTML); //selection number
    if( checkElementExists("extrastotal") )
        var eTotalString = document.getElementById("extrastotal").innerHTML; //extras total price string
    //get extras total price value
    eTotalString = eTotalString.split(currency);
    eTotalString = eTotalString[1].split("</b>");
    var ePrice = parseFloat(eTotalString[0]); //extras total price
    if( checkElementExists("grandtotal") )
        var baseValue = document.getElementById("grandtotal").innerHTML; //base value of total price
    baseValue = baseValue.split(currency);
    baseValue = parseFloat(baseValue[1]);
    //calculate price by multiplying rate with rate per night and add to this extras total
    var total;
    switch (choice){
        case "add":
            break;
        case "subtract":
            break;
    }
    total = ( pRate * pNight ) + ePrice + baseValue;
    document.getElementById("grandtotal").innerHTML = currency + formatValue(total);
    return true;
}

function updateValue(div_id,value)
{
    var id = "" + div_id + "-" + value;
    var currentValue = document.getElementById(id);
    if( value == "count" ){
        currentValue = parseInt(currentValue);
        currentValue = 1;
        return currentValue;
    }
    else
        return currentValue.innerHTML;
       
}
    
function updateRoom(div_id)
{
    var countId = "" + div_id + "-count";
    var cInput = document.getElementById(div_id+"-cinput");
    var count = document.getElementById(countId).innerHTML;
    count = parseInt(count);
    count++;
    document.getElementById(countId).innerHTML = count;
    document.getElementById(div_id+"-cinput").value = count;
    return true;
}

function removeElement(id)
{
    var i = document.getElementById(id);
    i.parentNode.removeChild(i);
}

function checkElementExists(id)
{
    if ( document.getElementById(id) != null )
        return true;
    else
        return false;
}

function createObject(parent,element,id,eClass,name)
{
    var i = document.getElementById(parent);
    var child = document.createElement(element);
    child.setAttribute('id',id);
    child.setAttribute('class',eClass);
    if( element == "input" )
        child.setAttribute('name',name);
    return child;

}

function createTableHeader(table,id,cell)
{
    var row0 = table.insertRow(0);
    row0.setAttribute('id',id);
    for ( var i = 0; i<= cell; i++ ){
        row0.insertCell(i).innerHTML = header[i];
    }
    return row0;
}

function addElement(parent,object)
{
    var i = document.getElementById(parent);
    i.appendChild(object);
}

function get_cookie ( cookie_name )
{
    var results = document.cookie.match ( '(^|;) ?' + cookie_name + '=([^;]*)(;|$)' );
    if ( results )
        return ( unescape ( results[2] ) );
    else
        return null;
}


function updateAvailability(content)
{
    var uAv, dAv;
    var availability = "" + content + "-availability";
    var current = document.getElementById(availability).innerHTML;
    uAv = parseInt(current)+1;
    dAv = parseInt(current)-1;
    document.getElementById(availability).innerHTML = dAv;

}

function copyRoomRow(value)
{
    var roomValue,guestValue, getTypes;
    var lastRow,roomRow,id,last, tbody;
    if ( checkElementExists("bform_table")){
        var table = document.getElementById("bform_table");
        if( checkElementExists("Headers")){
            roomRow = document.getElementById("Headers");
            guests[0] = roomRow.cells[1].innerHTML;
            guests[1] = roomRow.cells[2].innerHTML;
            guests[2] = roomRow.cells[3].innerHTML;
            //guests[3] = "Room";

            if ( checkElementExists("room_type") ){
                getTypes = document.getElementById("room_type");
                //alert(getTypes.length);
                for ( var i = 0; i < getTypes.length; i++){
                    rTypes[i] = getTypes.options[i].value;
                }

            }
        }
        tbody = table.getElementsByTagName("tbody")[0];
        removeTable(table);
        var j = 0;
         for( var m = 1; m <= value; m++){
        	roomValue = createRoomTypes(m);
            guestValue = createGuests(m);
            id = guests[j].split(" ");
            //lastRow = table.insertRow(table.rows.length);
            lastRow = document.createElement("tr");
            lastRow.setAttribute('id','Room'+m);
			lastRow.appendChild(roomValue);
			for ( var i = 0; i < guestValue.length; i ++ ){
				lastRow.appendChild(guestValue[i]);
			}
            if ( j != 2){
                j++;
            }
            tbody.appendChild(lastRow);
             //alert(m);
        }

        if ( checkElementExists('roomSelection') )
        {
            document.getElementById('roomSelection').value = value;
        }else
        {
            var selectedRoomCounter = createInput('roomSelection','hidden');
            document.ajaxform.appendChild(selectedRoomCounter);
            document.getElementById('roomSelection').value = value;
        }
    }
    if ( value != 1)
        last = value;
    else
        last = 1;
    return true;
}

function removeTable(table)
{
    var size = table.rows.length;
    while( size != 4 ){
        table.deleteRow(size-1);
        size--;
    }
}

function createRoomTypes(freq)
{
    var rType = document.createElement("td");
    var rSelect = document.createElement("select");
    var tName,selected,rOption;
    tName = "room_type_" + freq;
    //alert(tName);
    //alert(checkElementExists(tName));
 	//rType += '<td><select name="' + tName + '" onChange="javascript: setRoomTypeValue(\'room_number\',this);">';
 	rSelect.name = tName;
	rSelect.id = tName;
	rSelect.className = "inputbox";
 	//rSelect.onchange = "javascript: setRoomTypeValue('room_number',this)";
    for ( var j = 0; j < rTypes.length; j++ ){
            //rType += "<option " + selected + " value='" + rTypes[j] +"'>" + rTypes[j] + "</option>";
            rOption = document.createElement("option");
            if( j == 0 ){
            	selected = "selected";
            	rOption.selected = selected;
            }
        	else{
            	selected = "";
            }

            rOption.setAttribute("value", rTypes[j]);
			if ( typeof(rOption.innerText) != 'undefined' ) {
					rOption.innerText =  rTypes[j];
			} else {
					rOption.text =  rTypes[j];
			}
//            rOption.text = rTypes[j];
            rSelect.appendChild(rOption);
    }
    /*if ( checkElementExists(tName) )
    {
        removeRoomTypes_input();
        createInput(tName,'hidden',rTypes[0]);
    }
    else
    {
        createInput(tName,'hidden',rTypes[0]);
    }*/
 //   rType += "</select>";
//    rType += "</td>";
	rType.appendChild(rSelect);
    return rType;
}

function createGuests(freq)
{
    var sGuest = new Array();
    var guestSelect;
    var guestName,selected,name,value,sOption;
    for( var i = 0; i<=2; i++){
        //sGuest += "<td style=\"text-align: right;\">" + guests[i] + "</td>";
        guestName = guests[i].split(" ");
        name = guestName[0] + "-" + freq;
        sGuest[i] = document.createElement("td")
        guestSelect = document.createElement("select");
        guestSelect.name = name;
		guestSelect.setAttribute("id",name);
		guestSelect.setAttribute("class", "inputbox");
        //guestSelect.setAttribute("onchange","javascript: setGuestValue('room_number',this)");
//        sGuest += '<td><select name="' + name + '" onChange="javascript: setGuestValue(\'room_number\',this);">';
        for(var j = 0; j<= guests.length; j++)
        {
            sOption = document.createElement("option");
            if ( i == 0 && j == 1 ){
                selected = "selected";
                sOption.setAttribute("selected", selected);
                value = 1;
            }
            else{
                selected = "";
                value = 0;
            }
            sOption.setAttribute("value",  j);
			if ( typeof(sOption.innerText) != 'undefined' ) {
					sOption.innerText =  j;
			} else {
					sOption.text = j;
			}
           // sOption.text = j;
            guestSelect.appendChild(sOption);
            sGuest[i].appendChild(guestSelect);
        }
       /* if ( checkElementExists(name) )
        {
            removeGuests_input();
            createInput(name,'hidden',value);

        }
        else
        {
            createInput(name,'hidden',value);
        }*/
    }
    return sGuest;
}

function createInput(name,type,value)
{
    var objectInput;
    var search = name.split("-");
    objectInput = document.createElement('input');
    objectInput.setAttribute('type',type);
    objectInput.setAttribute('name', name);
    objectInput.setAttribute('id',name);
    objectInput.setAttribute('value',value);
    if ( guests[0].search(search[0]) != -1 )
        objectInput.setAttribute('value',1);
    document.ajaxform.appendChild(objectInput);
}

function removeGuests_input()
{
    var rmGuest = new Array();
    rmGuest[0] = guests[0].split(" ");
    rmGuest[1] = guests[1].split(" ");
    rmGuest[2] = guests[2].split(" ");

    for ( var k = 0; k <= 5; k++ ){
        if ( checkElementExists(rmGuest[0][0] + '-' + k) )
            removeElement(rmGuest[0][0] + '-' + k );
        if ( checkElementExists(rmGuest[1][0] + '-' + k) )
            removeElement(rmGuest[1][0] + '-' + k );
        if ( checkElementExists(rmGuest[2][0] + '-' + k) )
            removeElement(rmGuest[2][0] + '-' + k );
    }
}


function removeRoomTypes_input()
{
    for ( var k = 1; k <= 5; k++ ){
        //alert(k);
        if ( checkElementExists( "room_type_" + k) )
            removeElement( "room_type_" + k );
    }
}

function setGuest_value(object)
{
    var gValue,gName;
    gValue = object.value;
    gName = object.getAttribute('name');
    if ( checkElementExists(gName))
        document.getElementById(gName).value = gValue;
    else{
        createInput(gName,'hidden');
        document.getElementById(gName).value = gValue;
    }
}

function setRoomType_value(object)
{
    var gValue,gName;
    gValue = object.value;
    gName = object.getAttribute('name');
    if ( checkElementExists(gName))
        document.getElementById(gName).value = gValue;
    else{
        createInput(gName,'hidden');
        document.getElementById(gName).value = gValue;
    }
}

function replaceString(content,current,replace)
{
    var result;
    result = content.replace(current,replace);
    if( result != "" )
        return result;
    else
        return false;
}

function formatValue(num)
{
    num = num.toString().replace(/\$|\,/g,'');
    if(isNaN(num))
        num = "0";
    sign = (num == (num = Math.abs(num)));
    num = Math.floor(num*100+0.50000000001);
    cents = num%100;
    num = Math.floor(num/100).toString();
    if(cents<10)
        cents = "0" + cents;
    for (var i = 0; i < Math.floor((num.length-(1+i))/3); i++)
        num = num.substring(0,num.length-(4*i+3))+','+
        num.substring(num.length-(4*i+3));
    return (((sign)?'':'-') + num + '.' + cents);
}
	
function checkSelectRoomMessage()
{
    var exists = document.getElementById("roomalert_top");
    if (exists != null)
    {
        if (document.getElementById("messages").innerHTML == selectroommessage )
        {
            if (show_extras == true)
                jQuery("#extrascontainer").fadeTo("slow", 0.2);
            jQuery("#bookingform_address").fadeTo("slow", 0.2);
            jQuery("#bookingform_footer").fadeTo("slow", 0.2);
            document.getElementById("roomalert_top").className="roomalert_on"
            document.getElementById("roomalert_bottom").className="roomalert_on"
        //showdiv("roomalert_top");
        //showdiv("roomalert_bottom");
        //jQuery("#roomalert_top").Highlight(500, '#fc0000');               // Causes error with jquery 1.2 as interface library does not appear compatible with this version of jquery
        //jQuery("#roomalert_bottom").Highlight(500, '#fc0000');               // Causes error with jquery 1.2 as interface library does not appear compatible with this version of jquery
        }
        else
        {
            if (show_extras == true)
                document.getElementById("extrascontainer").className="roomalert_off";
            document.getElementById("roomalert_top").className="roomalert_off";
            document.getElementById("roomalert_bottom").className="roomalert_off";
            //hidediv("roomalert_top");
            //hidediv("roomalert_bottom");
            if (show_extras == true)
                jQuery("#extrascontainer").fadeTo("slow", 1);
            jQuery("#bookingform_address").fadeTo("slow", 1);
            jQuery("#bookingform_footer").fadeTo("slow", 1);
        }
    }
}

(function($) {
    $.fn.customFadeIn = function(speed, callback) {
        $(this).fadeIn(speed, function() {
            if(jQuery.browser.msie)
                $(this).get(0).style.removeAttribute('filter');
            if(callback != undefined)
                callback();
        });
    };
    $.fn.customFadeOut = function(speed, callback) {
        $(this).fadeOut(speed, function() {
            if(jQuery.browser.msie)
                $(this).get(0).style.removeAttribute('filter');
            if(callback != undefined)
                callback();
        });
    };
})(jQuery);


function SRPcheckShowGuestDeetsNow() {
    if (isSRP)
    {
        if (show_extras == true)
            showdiv("extrascontainer");
        showdiv("guestdeets");
    }
}
//////////////////////////////////////////////////////////////////////////////////////////////////////////////
//	 Departure date adjustment stuff
//////////////////////////////////////////////////////////////////////////////////////////////////////////////
function ajaxADate(arrivalDate,dformat){
    var newday=0
    var day=0
    var mon=0
    var year=0
    if (dformat=="%d/%m/%Y"){
        dateArray=arrivalDate.split("/")
        day=dateArray[0]
        mon=dateArray[1]
        year=dateArray[2]
    }
    if (dformat=="%Y/%m/%d"){
        dateArray=arrivalDate.split("/")
        day=dateArray[2]
        mon=dateArray[1]
        year=dateArray[0]
    }
    if (dformat=="%m/%d/%Y"){
        dateArray=arrivalDate.split("/")
        day=dateArray[1]
        mon=dateArray[0]
        year=dateArray[2]
    }
    if (dformat=="%d-%m-%Y"){
        dateArray=arrivalDate.split("-")
        day=dateArray[0]
        mon=dateArray[1]
        year=dateArray[2]
    }
    if (dformat=="%Y-%m-%d"){
        dateArray=arrivalDate.split("-")
        day=dateArray[2]
        mon=dateArray[1]
        year=dateArray[0]
    }
    if (dformat=="%m-%d-%Y"){
        dateArray=arrivalDate.split("-")
        day=dateArray[1]
        mon=dateArray[0]
        year=dateArray[2]
    }
    if (dformat=="%d.%m.%Y"){
        dateArray=arrivalDate.split(".")
        day=dateArray[0]
        mon=dateArray[1]
        year=dateArray[2]
    }
		
    var d = new Date(year,mon-1,day); with (d) setDate(getDate()+mininterval);
    sday=String(d.getDate());
    smonth=String(d.getMonth()+1);
    if (sday.length == 1)
        fday="0"+sday;
    else
        fday=sday;
    if (smonth.length == 1)
        fmonth="0"+smonth;
    else
        fmonth=smonth;
    if (dformat=="%d/%m/%Y"){
        dd=fday+"/"+fmonth+"/"+String(d.getFullYear())
    }
    if (dformat=="%Y/%m/%d"){
        dd= String(d.getFullYear())+"/"+fmonth+"/"+fday
    }
    if (dformat=="%m/%d/%Y"){
        dd=fmonth+"/"+ fday+"/"+String(d.getFullYear())
    }
    if (dformat=="%d-%m-%Y"){
        dd=fday+"-"+fmonth+"-"+String(d.getFullYear())
    }
    if (dformat=="%Y-%m-%d"){
        dd= String(d.getFullYear())+"-"+fmonth+"-"+fday
    }
    if (dformat=="%m-%d-%Y"){
        dd=fmonth+"-"+ fday+"-"+String(d.getFullYear())
    }
			
    document.ajaxform.departureDate.value=dd;
}	


///////////////////////////////////////
//
//	Validate the form input
//
///////////////////////////////////////

function checkaddressfields()
{
    var firstname 		=jQuery.trim(jQuery('#firstname').val());
    var surname 		=jQuery.trim(jQuery('#surname').val());
    var house 		=jQuery.trim(jQuery('#house').val());
    var street 		=jQuery.trim(jQuery('#street').val());
    var town 		=jQuery.trim(jQuery('#town').val());
    var region 		=jQuery.trim(jQuery('#region').val());
    var postcode 		=jQuery.trim(jQuery('#postcode').val());
    var exists = document.ajaxform.country;
    if (exists != null)
        var country 	= document.ajaxform.country[document.ajaxform.country.selectedIndex].value;
    var tel_landline 	=jQuery.trim(jQuery('#tel_landline').val());
    var tel_mobile 		=jQuery.trim(jQuery('#tel_mobile').val());
    var eemail              =jQuery.trim(jQuery('#eemail').val());

    setInputFillToOkColour('#firstname');
    setInputFillToOkColour('#surname');
    setInputFillToOkColour('#house');
    setInputFillToOkColour('#street');
    setInputFillToOkColour('#town');
    setInputFillToOkColour('#region');
    setInputFillToOkColour('#postcode');
    setInputFillToOkColour('#tel_landline');
    setInputFillToOkColour('#tel_mobile');
    setInputFillToOkColour('#eemail');
	
    var pass			= true;

    if (validation_firstname && firstname.length == 0 || firstname == "Required field"  )
    {
        setInputFillToErrorColour("#firstname");
        setInputValueErrorMessage("#firstname");
        pass = false;
    }
    if (validation_surname && surname.length == 0 || surname == "Required field" )
    {
        setInputFillToErrorColour("#surname");
        setInputValueErrorMessage("#surname");
        pass = false;
    }
    if (validation_houseno && house.length == 0 || house == "Required field" )
    {
        setInputFillToErrorColour("#house");
        setInputValueErrorMessage("#house");
        pass = false;
    }
    if (validation_street && street.length == 0 || street == "Required field" )
    {
        setInputFillToErrorColour("#street");
        setInputValueErrorMessage("#street");
        pass = false;
    }
    if (validation_town && town.length == 0 || town == "Required field" )
    {
        setInputFillToErrorColour("#town");
        setInputValueErrorMessage("#town");
        pass = false;
    }
    if (validation_region && region.length == 0 || region == "Required field" )
    {
        setInputFillToErrorColour("#region");
        setInputValueErrorMessage("#region");
        pass = false;
    }
    if (validation_postcode && postcode.length == 0 || postcode == "Required field" )
    {
        setInputFillToErrorColour("#postcode");
        setInputValueErrorMessage("#postcode");
        pass = false;
    }
    if (validation_country && country.length == 0 || country == "Required field" )
    {
        setInputFillToErrorColour("#country");
        setInputValueErrorMessage("#country");
        pass = false;
    }
    if (validation_landline && tel_landline.length == 0 || tel_landline == "Required field" )
    {
        setInputFillToErrorColour("#tel_landline");
        setInputValueErrorMessage("#tel_landline");
        pass = false;
    }
    if (validation_cellmobile && tel_mobile.length == 0 || tel_mobile == "Required field" )
    {
        setInputFillToErrorColour("#tel_mobile");
        setInputValueErrorMessage("#tel_mobile");
        pass = false;
    }
    if (validation_email && eemail.length == 0 || eemail == "Required field" )
    {
        setInputFillToErrorColour("#eemail");
        setInputValueErrorMessage("#eemail");
        pass = false;
    }

    if (validation_email && !echeck(eemail))
    {
        setInputFillToErrorColour("#eemail");
        pass = false;
    }
	
    if (pass)
        pass = checkCustomFields();
	
    if (!pass)
    {
        jQuery('div.recheckaddress').show();
        blockInterface("addresserror",2500);
        jQuery('div.block_ui_bookingform').unblock();
        //disableSubmitButton(document.ajaxform.confirmbooking);
        return false;
    }
    else
    {
        enableSubmitButton(document.ajaxform.confirmbooking);
        return true;
    }
}
	
function validate()
{
    if (checkaddressfields())
    {
        getResponse_guest();
        setTimeout('submitBooking()', 1000);
    }
}

function submitBooking()
{
    document.ajaxform.action = livesite+"&task=confirmbooking"
    document.ajaxform.submit();
}
	
function setInputFillToOkColour(field)
{
    jQuery(field).removeClass("errorbackground");
}
	
function setInputFillToErrorColour(field)
{
    jQuery(field).addClass("errorbackground");
}

function setInputValueErrorMessage(field)
{
    var errorMessage;
    switch(field){
        case "#firstname":
            errorMessage = "Required field";
            break;
        case "#surname":
            errorMessage = "Required field";
            break;
        case "#house":
            errorMessage = "Required field";
            break;
        case "#street":
            errorMessage = "Required field";
            break;
        case "#town":
            errorMessage = "Required field";
            break;
        case "#region":
            errorMessage = "Required field";
            break;
        case "#postcode":
            errorMessage = "Required field";
            break;
        case "#tel_landline":
            errorMessage = "Required field";
            break;
        case "#tel_mobile":
            errorMessage = "Required field";
            break;
        case "#eemail":
            errorMessage = "Enter your email address correctly";
            break;
    }
    jQuery(field).val(errorMessage);
}

function clearThis(object)
{
    object.value = "";
}
	
function submitenter(myfield,e)
{
    var keycode;
    if (window.event) keycode = window.event.keyCode;
    else if (e) keycode = e.which;
    else return true;
    if (!document.ajaxform.confirmbooking.disabled)
    {
        if (keycode == 13)
        {
            document.ajaxform.submit();
            return false;
        }
        else
            return true;
    }
    else
        return true;
}	
			
/**
* DHTML email validation script. Courtesy of SmartWebby.com (http://www.smartwebby.com/dhtml/)
*/
function echeck(str)
{
    var strlen = str.length
    var at="@"
    var dot="."
    var lat=str.indexOf(at)
    var lstr=str.length
    var ldot=str.indexOf(dot)
    if (strlen==0){
        return false
    }
    if (str.indexOf(at)==-1){
        //alert("Invalid E-mail ID")
        return false
    }
    if (str.indexOf(at)==-1 || str.indexOf(at)==0 || str.indexOf(at)==lstr){
        //alert("Invalid E-mail ID");
        return false;
    }
    if (str.indexOf(dot)==-1 || str.indexOf(dot)==0 || str.indexOf(dot)==lstr){
        //alert("Invalid E-mail ID")
        return false
    }
    if (str.indexOf(at,(lat+1))!=-1){
        //alert("Invalid E-mail ID")
        return false
    }
    if (str.substring(lat-1,lat)==dot || str.substring(lat+1,lat+2)==dot){
        //alert("Invalid E-mail ID")
        return false
    }
    if (str.indexOf(dot,(lat+2))==-1){
        //alert("Invalid E-mail ID")
        return false
    }
    if (str.indexOf(" ")!=-1){
        //alert("Invalid E-mail ID")
        return false
    }
    return true
}
