// dropdown menu. (c) bom 2008

function menu_init(target, tree, base_url) {
    // creates a complete menu structure into target
    // tree is list of tuples. first is a menu root, second list of submenus
    // each root and submenu entry is tuple of page and label
    var t = document.getElementById(target);
    if (!t) return;
    var r = document.createElement('UL');
    r.className += ' menu_nav';
    for (var i=0; i < tree.length ; i++) {
	var lv = tree[i][0];
	var m = menu_create_li(lv, base_url, (tree[i][1].length) ? tree[i][1] : null);
	r.appendChild(m);
    }
    t.appendChild(r);
}
function menu_create_submenus(submenus, base_url, two_col) {
    // adds submenus to existing root targets
    // submenus is list of tuples. first is id of root, second list of submenus
    // each submenu entry is tuple of page and label
    for (var i=0; i < submenus.length ; i++) {
	var lv = submenus[i][0];
	var li = document.getElementById(lv);
	menu_set_mouse_action(li);
	if (!li) continue; // assert typeof(li,'LI')
	var sm = submenus[i][1];
	if (two_col) {
	    var coldiv = document.createElement('UL');
	    var lhs = menu_create_ul(sm.slice(0,sm.length/2), base_url);
	    var rhs = menu_create_ul(sm.slice(sm.length/2), base_url);
	    lhs.className += 'lhs';
	    rhs.className += 'rhs';
	    coldiv.appendChild(document.createElement('LI').appendChild(lhs));
	    coldiv.appendChild(document.createElement('LI').appendChild(rhs));
	    li.appendChild(coldiv);
	} else {
	    var ul = menu_create_ul(sm, base_url);
	    li.appendChild(ul);
	}
    }
}
function menu_create_ul(items, base_url) {
    var ul = document.createElement('UL');
    for (var s=0 ; s <items.length;s++) {
	var m = menu_create_li(items[s], base_url, null);
	ul.appendChild(m);
    }
    return ul;
}
function menu_set_mouse_action(li) {
    li.onmouseover = function () { 
	this.className += " menu_hover";
    };
    li.onmouseout = function() {
	this.className = this.className.replace(/\bmenu_hover\b/, "");
    }
}
function menu_lnk_to_lbl(lnk) {
    var lbl = lnk.replace(/_/g,' ');
    return lbl;
}
function menu_create_li(entry, base_url, child_tree) {
    var lbl, lnk;
    if (entry.length==2) {
	lbl = entry[0];
	lnk = entry[1];
    } else {
	lnk = entry[0];
	lbl = menu_lnk_to_lbl(lnk);
    }
    var a = document.createElement('A');
    a.setAttribute('href', base_url + lnk + "/index.html");
    a.innerHTML = lbl;
    var m = document.createElement('LI');
    m.appendChild(a);
    if (child_tree) {
	menu_set_mouse_action(m);
	var list = document.createElement('UL');
	for (var i=0; i<child_tree.length; i++) {
	    var sm = menu_create_li(child_tree[i], base_url, null);
	    list.appendChild(sm);
	}
	m.appendChild(list);
    }
    return m;
}

//var tree = new Array();
//tree[0] = [['Home','/'], []];
//tree[1] = [['destinations'], [['bali','In Bali'],['fes']]];

var submenus = new Array();
submenus[0] = ['our_resorts_menu', [
    ['Kuala Lumpur','kuala_lumpur'],
    ['Taman Negara','taman_negara'],
    ['Cameron Highlands','cameron_highlands'],
    ['Pangkor Laut','pangkor_laut_resort'],
    ['Pangkor Island','pangkor_island_beach_resort'],
    ['Penang','penang'],
    ['Perhentian Islands','perhentian_islands'],
    ['Langkawi','langkawi'],
    ['East Coast','east_coast'],
    ['Redang Island','redang_island'],
    ['Tioman Island','tioman_island'],
    ['Sabah (Borneo)','sabah_borneo'],
    ['Sarawak (Borneo)','sarawak_borneo'],
    ['Singapore','singapore']
    ]];
menu_create_submenus(submenus, '/malaysia/', 2);

/* add offer tag to header images.
Here just to avoid adding another js.
Note also .offer_tag related styling on these divs in layout.css
*/
document.observe('dom:loaded',function() {
    /*
    var now = new Date();
    var valid_till = new Date(2009, 12-1, 31, 23, 59);
    if (now > valid_till) {
        $$('#early_booking').each(function(node){node.style.display = 'none';});
        return;
    }
    */
    var i = document.createElement('img');
    i.className = 'offer_tag';
    i.src = '/malaysia/common/2010june-resort.png';
    i.alt = "Special offer";
    i.title = "Click for more info";
    //var divs = '.home .leafframe > .full_width_image, .hotel #primary_image, .resort #primary_image, .country #primary_image';
    var divs = '.home .leafframe > .full_width_image, .resort #primary_image, .country #primary_image';
    $$(divs).each(function(node){
        var clone = i.cloneNode(false);
        node.appendChild(clone);
        // extra $ round clone forces prototype to extend it with observe on IE
        $(clone).observe('click', function () {
            document.location ='/malaysia/special_offers/';
        });
    });
});

document.observe('dom:loaded',function() {
    var now = new Date();
    var valid_till = new Date(2010, 6-1, 31, 23, 59);
    if (now > valid_till) return;
    $$('.section > .menu_nav').each(function(node) {
        var li = document.createElement('LI');
        var a = document.createElement('A');
        a.href="/malaysia/special_offers/";
        a.innerHTML = "Special Offers";
        li.appendChild(a);
        node.appendChild(li);
    });
});

/* 20100308 alter tel num for ctm */
document.observe('dom:loaded',function() {
function getCookie(cookie_name) {
    var search = cookie_name + "=";
    if (document.cookie.length > 0) {
	var offset = document.cookie.indexOf(search);
	if (offset != -1) { 
	    offset += search.length;
	    var end = document.cookie.indexOf(";", offset) 
	    if (end == -1) end = document.cookie.length;
	    return unescape(document.cookie.substring(offset, end));			}
    }
    return "";
}
function setCookie(cookie_name,cookie_value,expire_days) {
    var exp_str = "";
    if (expire_days) {
	var today = new Date();
	var cexp = new Date();
	cexp.setTime(today.getTime() + 3600000*24*expire_days);
	exp_str = ";expires=" + cexp.toGMTString();
    }
    document.cookie = cookie_name + "=" + escape(cookie_value) + ';path=/' + exp_str
}

    var tel = "";
    var search = document.location.search || "";
    var m = search.match(/phonenumber=([0-9]{11})/);
    if (m) {
        tel = m[1];
        setCookie('nr_websales', tel);
    } else 
        tel = getCookie('nr_websales');
    if (tel) {
        $$('.addr_nr_websales').each(function (node) {
            node.update(tel);
        });
    }
});


