var PContent = {
    $: function(id)
    {
        if (typeof(id) == "string")
        {
            return document.getElementById(id); 
        }
        else
        {
            return id;
        }
    },
    preLoadImages: function()
    {
        var d = document;
        
        if(d.images)
        {
            if(!d.MM_p)
            {
                d.MM_p = new Array();
            }
            
            var i, j = d.MM_p.length, a=PContent.preLoadImages.arguments;
            for(i = 0; i < a.length; i++)
            {
                if(a[i].indexOf("#") != 0)
                {
                    d.MM_p[j] = new Image;
                    d.MM_p[j++].src = a[i];
                }
            }
        }
    },
    setIFrameSize: function(iframe)
    {
        var iframeDim = PEvent.getIFrameWindowDimensions(iframe);
        iframe.height = iframeDim[1] + 50;
    },
    scrollToTopIgnoredPanels: new Array(),
    scrollToTop: function(pnl)
    {
        var ignoredPanels = "|" + PContent.scrollToTopIgnoredPanels.join("|") + "|";
        
        if(ignoredPanels.indexOf("|" + pnl + "|") == -1)
        {
            if(PBrowser.isFF | PBrowser.isSafari | PBrowser.isChrome)
            {
                document.anchors["top"].scrollIntoView();
            }
            else
            {
                PContent.$("top").scrollIntoView();
            }
        }
    },
    getCountryCustomPages: function(countrySel, targetSel)
    {
        PSel.clear(targetSel, true);
        PSel.disable(targetSel);
        
        var xmlHttp = PAjax.xmlHttpObjectGet("get_countrycustompages.aspx?countrycode=" + countrySel.value);
        xmlHttp.onreadystatechange = function(){
            if (xmlHttp.readyState == 4)
            {
                var pages = eval(xmlHttp.responseText);
                
                PSel.enable(targetSel);

                for(i = 0; i < pages.length; i++)
                {
                    PSel.add(targetSel, pages[i][0], pages[i][1]);
                }
            }
        };
        xmlHttp.send(null);
    }
};

//-----------------------------
//--- START OF BROWSER CODE ---
//-----------------------------

var PBrowser = {
    isFF : (navigator.userAgent.indexOf("Firefox") != -1),
    isMac : (navigator.appVersion.indexOf("Mac") != -1),
    isSafari : (navigator.appVersion.indexOf("Safari") != -1 && navigator.userAgent.indexOf("Chrome") == -1),
    isOPR : (navigator.userAgent.indexOf("Opera")!=-1 ? false : true),
    isOPR7 : false,
    isChrome : (navigator.userAgent.indexOf("Chrome")!=-1 ? true : false)
};

//---------------------------
//--- END OF BROWSER CODE ---
//---------------------------

//--------------------------
//--- START OF AJAX CODE ---
//--------------------------

var PAjax = {
    referer: "",
    currentPage: "default.aspx",
    getXmlHttpObject: function()
    {
        var xmlHttp=false;    
        try {
            xmlHttp = new ActiveXObject("Msxml2.XMLHTTP");
        } catch (e) {
            try {
                xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
            } catch (E) {
                xmlHttp = false;
            }
        }    
        if (!xmlHttp && typeof XMLHttpRequest!='undefined') {
            try {
                xmlHttp = new XMLHttpRequest();
            } catch (e) {
                xmlHttp=false;
            }
        }
        if (!xmlHttp && window.createRequest) {
            try {
                xmlHttp = window.createRequest();
            } catch (e) {
                xmlHttp=false;
            }
        }
        return xmlHttp;
    },
    xmlHttpObjectGet: function(url)
    {
        var xmlHttp = PAjax.getXmlHttpObject();
        xmlHttp.open("GET", url, true);
        
        xmlHttp.setRequestHeader("If-Modified-Since", "Thu, 1 Jan 1970 00:00:00 GMT");
        xmlHttp.setRequestHeader("Pragma", "no-cache");
        xmlHttp.setRequestHeader("Cache-Control", "no-cache");
            
        if(PAjax.referer != "")
        {
            xmlHttp.setRequestHeader("Referer", PAjax.referer);
        }
        
        return xmlHttp;
    },
    get: function(url, pnl)
    {
        //Check if this is a string of anchor.
        if(typeof(url) == "object")
        {
            url = url.getAttribute("href");
        }
        
        if(url.indexOf("noscroll=1") == -1)
        {
            PContent.scrollToTop(pnl);
        }

        NicEdit.remove();
        
        //Show Progress
        var html;
        html = "<table cellpadding=\"20\" cellspacing=\"0\" width=\"100%\" border=\"0\">";
        html += "<tr><td align=\"center\"><img src=\"" + adminSiteUrl + "/images/ajax-loader.gif\" width=\"32\" height=\"32\" border=\"0\" />";
        html += "</td></tr></table>";
        PContent.$(pnl).style.verticalAlign = "top";
        PContent.$(pnl).innerHTML = html;

        //Get the new page.
        var xmlHttp = PAjax.xmlHttpObjectGet(url, false);
        xmlHttp.onreadystatechange = function(){
            if (xmlHttp.readyState == 4)
            {
                var panel = PContent.$(pnl);
                
                if(panel != null)
                {
                    panel.style.verticalAlign = "top";
                    
                    if(xmlHttp.responseText.toLowerCase().indexOf("<body") > -1)
                    {
                        var html = xmlHttp.responseText.substring(xmlHttp.responseText.indexOf("<body") + 5);
                        html = html.substring(html.indexOf(">") + 1);
                        html = html.substring(0, html.indexOf("</body>"));
                        panel.innerHTML = html;
                    }
                    else
                    {
                        panel.innerHTML = xmlHttp.responseText;
                    }

                    //Process script.
                    var script = xmlHttp.responseText.substring(xmlHttp.responseText.toLowerCase().indexOf("</body>") + 7);
                    if(script.toLowerCase().indexOf("<script ") > -1)
                    {
                        script = script.substring(script.indexOf(">") + 1);
                        script = script.substring(0, script.toLowerCase().indexOf("</script>"));
                        eval(script);
                    }
                }
            }
        };
        xmlHttp.send(null);
        return false;
    },
    post: function(frm, pnl)
    {
        if(frm["noscroll"] == null)
        {
            PContent.scrollToTop(pnl);
        }
        
        NicEdit.remove();
        
        //Parse the form.
        var form = "";
        var i;
        for(i = 0; i < frm.length; i++)
        {
            if(frm[i].type == "radio")
            {
                if(frm[i].checked)
                {
                    form += frm[i].name + "=" + escape(frm[i].value) + "&";
                }
            }
            else if(frm[i].type == "checkbox")
            {
                if(frm[i].checked)
                {
                    form += frm[i].name + "=" + escape(frm[i].value) + "&";
                }
            }
            else if(frm[i].type == "select-one")
            {
                if(frm[i].options.length > 0)
                {
                    form += frm[i].name + "=" + escape(frm[i].value) + "&";
                }
            }
            else if(frm[i].type == "select-multiple")
            {
                var j;
                for(j = 0; j < frm[i].options.length; j++)
                {
                    if(frm[i].options[j].selected)
                    {
                        form += frm[i].name + "=" + escape(frm[i].options[j].value) + "&";
                    }
                }
            }
            else
            {
                form += frm[i].name + "=" + escape(frm[i].value) + "&";
            }
        }
        
        if(form != "")
        {
            form = form.substring(0, form.length - 1);
        }
        
        //Show Progress
        var html;
        html = "<table cellpadding=\"20\" cellspacing=\"0\" width=\"100%\" border=\"0\">";
        html += "<tr><td align=\"center\"><img src=\"" + adminSiteUrl + "/images/ajax-loader.gif\" width=\"32\" height=\"32\" border=\"0\" />";
        html += "</td></tr></table>";
        PContent.$(pnl).style.verticalAlign = "middle";
        PContent.$(pnl).innerHTML = html;

        //Get the new page.
        var xmlHttp = PAjax.getXmlHttpObject();
        xmlHttp.open("POST", frm.action, true);
        xmlHttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded; charset=ISO-8859-1");
        xmlHttp.setRequestHeader("Content-Length", form.length);

        xmlHttp.onreadystatechange = function(){
            if (xmlHttp.readyState == 4)
            {
                var panel = PContent.$(pnl);
                
                if(panel != null)
                {
                    panel.style.verticalAlign = "top";
                    
                    if(xmlHttp.responseText.toLowerCase().indexOf("<body") > -1)
                    {
                        var html = xmlHttp.responseText.substring(xmlHttp.responseText.indexOf("<body") + 5);
                        html = html.substring(html.indexOf(">") + 1);
                        html = html.substring(0, html.indexOf("</body>"));
                        panel.innerHTML = html;
                    }
                    else
                    {
                        panel.innerHTML = xmlHttp.responseText;
                    }

                    //Process script.
                    var script = xmlHttp.responseText.substring(xmlHttp.responseText.toLowerCase().indexOf("</body>") + 7);
                    if(script.toLowerCase().indexOf("<script ") > -1)
                    {
                        script = script.substring(script.indexOf(">") + 1);
                        script = script.substring(0, script.toLowerCase().indexOf("</script>"));
                        eval(script);
                    }
                }
            }
        };
        
        xmlHttp.send(form);
        return false;
    },
    frameGet: function(url, pnl)
    {
        window.setTimeout("PAjax.get('" + url + "', '" + pnl + "');", 20);
    }
};

//------------------------
//--- END OF AJAX CODE ---
//------------------------

//-------------------------------
//--- START OF GEOGRAPHY CODE ---
//-------------------------------

var PGeo = {
    getCountryRegions: function(sel, targetSel)
    {
        PSel.clear(targetSel, true);
        PSel.disable(targetSel);
        
        var xmlHttp = PAjax.xmlHttpObjectGet("get_countryregions.aspx?countrycode=" + sel.value);
        xmlHttp.onreadystatechange = function(){
            if (xmlHttp.readyState == 4) {
                var regions = eval(xmlHttp.responseText);
                
                PSel.enable(targetSel);
                PSel.add(targetSel, "", "-- Select a Region --");

                for(i = 0; i < regions.length; i++)
                {
                    PSel.add(targetSel, regions[i][0], regions[i][1]);
                }
            }
        };
        xmlHttp.send(null);
    },
    getCountryRegionsGPS: function(sel, targetSel)
    {
        PSel.clear(targetSel, true);
        PSel.disable(targetSel);

        var xmlHttp = PAjax.xmlHttpObjectGet("get_countryregionsgps.aspx?countrycode=" + sel.value);
        xmlHttp.onreadystatechange = function(){
            if (xmlHttp.readyState == 4) {
                var regions = eval(xmlHttp.responseText);
                
                PSel.enable(targetSel);
                PSel.add(targetSel, "", "-- Select a Region --");

                for(i = 0; i < regions.length; i++)
                {
                    PSel.add(targetSel, regions[i][0] + "|" + regions[i][2] + "|" + regions[i][3], regions[i][1]);
                }
            }
        };
        xmlHttp.send(null);
    },
    getCountryAccommodation: function(countrySel, targetSel)
    {
        PSel.clear(targetSel, true);
        PSel.disable(targetSel);
        
        var xmlHttp = PAjax.xmlHttpObjectGet("get_countryaccommodation.aspx?countrycode=" + countrySel.value);
        xmlHttp.onreadystatechange = function(){
            if (xmlHttp.readyState == 4)
            {
                var accommodation = eval(xmlHttp.responseText);
                
                PSel.enable(targetSel);
                PSel.add(targetSel, "", "-- Select an Accommodation --");

                for(i = 0; i < accommodation.length; i++)
                {
                    PSel.add(targetSel, accommodation[i][0], accommodation[i][1]);
                }
            }
        };
        xmlHttp.send(null);
    },
    getCountryRegionAccommodation: function(countrySel, regionSel, targetSel)
    {
        PSel.clear(targetSel, true);
        PSel.disable(targetSel);
        
        var xmlHttp = PAjax.xmlHttpObjectGet("get_countryregionaccommodation.aspx?countrycode=" + countrySel.value + "&regionid=" + regionSel.value);
        xmlHttp.onreadystatechange = function(){
            if (xmlHttp.readyState == 4)
            {
                var accommodation = eval(xmlHttp.responseText);
                
                PSel.enable(targetSel);
                PSel.add(targetSel, "", "-- Select an Accommodation --");

                for(i = 0; i < accommodation.length; i++)
                {
                    PSel.add(targetSel, accommodation[i][0], accommodation[i][1]);
                }
            }
        };
        xmlHttp.send(null);
    },
    getCountryTours: function(countrySel, targetSel)
    {
        PSel.clear(targetSel, true);
        PSel.disable(targetSel);
        
        var xmlHttp = PAjax.xmlHttpObjectGet("get_countrytours.aspx?countrycode=" + countrySel.value);
        xmlHttp.onreadystatechange = function(){
            if (xmlHttp.readyState == 4)
            {
                var tours = eval(xmlHttp.responseText);
                
                PSel.enable(targetSel);
                PSel.add(targetSel, "", "-- Select a Tour --");

                for(i = 0; i < tours.length; i++)
                {
                    PSel.add(targetSel, tours[i][0], tours[i][1]);
                }
            }
        };
        xmlHttp.send(null);
    },
    getCountryRegionTours: function(countrySel, regionSel, targetSel)
    {
        PSel.clear(targetSel, true);
        PSel.disable(targetSel);
        
        var xmlHttp = PAjax.xmlHttpObjectGet("get_countryregiontours.aspx?countrycode=" + countrySel.value + "&regionid=" + regionSel.value);
        xmlHttp.onreadystatechange = function(){
            if (xmlHttp.readyState == 4)
            {
                var tours = eval(xmlHttp.responseText);
                
                PSel.enable(targetSel);
                PSel.add(targetSel, "", "-- Select a Tour --");

                for(i = 0; i < tours.length; i++)
                {
                    PSel.add(targetSel, tours[i][0], tours[i][1]);
                }
            }
        };
        xmlHttp.send(null);
    }
};

//-----------------------------
//--- END OF GEOGRAPHY CODE ---
//-----------------------------

//--------------------------
//--- START OF MENU CODE ---
//--------------------------

var PMenu = {
    tmr: new Array(),
    get: function(id)
    {
        var i;
        for(i = 0; i < PMenu.tmr.length; i++)
        {
            if(PMenu.tmr[i][0] == id)
            {
                return PMenu.tmr[i];
            }
        }
        
        //Add new timer.
        PMenu.tmr[PMenu.tmr.length] = [id, null];
        return PMenu.tmr[PMenu.tmr.length - 1];
    },
    show: function(id, evt, position)
    {
        window.clearTimeout(PMenu.get(id)[1]);
        
        if(position)
        {
            var e = new PEvent.e(evt);
            var elm = e.eventElement;
            
            while(elm.tagName != "TD")
            {
                elm = elm.offsetParent;
            }
            
            var elmPos = PEvent.getElementPosition(elm);
            var elmDim = PEvent.getElementDimensions(elm);
            var mnu = PContent.$(id);
            
            mnu.style.top = (elmPos[1] + elmDim[1] - 1) + "px";
            mnu.style.left = (elmPos[0] - 1) + "px";
            mnu.style.width = (elmDim[0] + 2) + "px";
            mnu.style.visibility = "visible";
        }
    },
    startHide: function(id)
    {
        PMenu.get(id)[1] = window.setTimeout("PMenu.hide('" + id + "');", 20, "JavaScript");
    },
    hide: function(id)
    {
        PContent.$(id).style.visibility = "hidden";
    }
};

//------------------------
//--- END OF MENU CODE ---
//------------------------

//---------------------------
//--- START OF EVENT CODE ---
//---------------------------

var PEvent = {
    e: function(evt)
    {
        this.event = PEvent.getEvent(evt);
        this.eventElement = PEvent.getEventElement(evt);
        this.eventElementPosition = PEvent.getEventElementPosition(evt);
        this.eventElementDimensions = PEvent.getEventElementDimensions(evt);
        this.windowDimensions = PEvent.getWindowDimensions();
    },
    getEvent: function(evt)
    {
        if(window.event)
        {
            return window.event;
        }
        else
        {
            return evt;
        }
    },
    getEventElement: function(evt)
    {
        var e = PEvent.getEvent(evt);

        var elm;
        if(e.srcElement)
        {
            elm = e.srcElement;
        }
        else
        {
            elm = e.target;
        }
        
        return elm;
    },
    getEventElementPosition: function(evt)
    {
        var obj = PEvent.getEventElement(evt);
        
	    var curleft = 0;
	    var curtop = 0;
    	
	    if (obj.offsetParent)
	    {
		    curleft = obj.offsetLeft;
		    curtop = obj.offsetTop;
    		
		    while (obj = obj.offsetParent)
            {            
			    curleft += obj.offsetLeft;
			    curtop += obj.offsetTop;
		    }
	    }
    	
	    return [curleft, curtop];
    },
    getEventElementDimensions: function(evt)
    {
        var obj = PEvent.getEventElement(evt);
        
	    var innerWidth = 0;
	    var innerHeight = 0;
    	
        if(obj.offsetWidth)
        {   
            innerWidth = obj.offsetWidth;
            innerHeight = obj.offsetHeight;
        }
        else
        {
            innerWidth = obj.clientWidth;
            innerHeight = obj.clientHeight;
        }
        
	    return [innerWidth, innerHeight];
    },
    getElementPosition: function(obj)
    {
	    var curleft = 0;
	    var curtop = 0;
    	
	    if (obj.offsetParent)
	    {
		    curleft = obj.offsetLeft;
		    curtop = obj.offsetTop;
    		
		    while (obj = obj.offsetParent)
            {
			    curleft += obj.offsetLeft;
			    curtop += obj.offsetTop;
		    }
	    }

	    return [curleft, curtop];
    },
    getElementDimensions: function(obj)
    {
	    var innerWidth = 0;
	    var innerHeight = 0;
    	
        if(obj.offsetWidth)
        {   
            innerWidth = obj.offsetWidth;
            innerHeight = obj.offsetHeight;
        }
        else
        {
            innerWidth = obj.clientWidth;
            innerHeight = obj.clientHeight;
        }
        
	    return [innerWidth, innerHeight];
    },
    getWindowDimensions: function()
    {
        if (window.innerWidth)
        {
            return [window.innerWidth, window.innerHeight];
        }
        else if (document.documentElement.clientHeight != 0)
        {
            return [document.documentElement.clientWidth, document.documentElement.clientHeight];
        }
        else if(document.body.clientWidth != 0)
        {
            return [document.body.clientWidth, document.body.clientHeight];
        }
        else
        {
            return [0, 0];
        }
    },
    getIFrameWindowDimensions: function(iframe)
    {
        if (iframe.contentWindow.document.body.clientWidth)
        {
            return [iframe.contentWindow.document.body.clientWidth, iframe.contentWindow.document.body.clientHeight];
        }
        
        if (iframe.contentDocument.width)
        {
            return [iframe.contentDocument.width, iframe.contentDocument.height];
        }
        
        return [0, 0];
    },
    getScrollXY: function()
    {
        var scrOfX = 0, scrOfY = 0;
        
        if( typeof( window.pageYOffset ) == "number" )
        {
            //Netscape compliant
            scrOfY = window.pageYOffset;
            scrOfX = window.pageXOffset;
        }
        else if( document.body && ( document.body.scrollLeft || document.body.scrollTop ) )
        {
            //DOM compliant
            scrOfY = document.body.scrollTop;
            scrOfX = document.body.scrollLeft;
        }
        else if( document.documentElement && ( document.documentElement.scrollLeft || document.documentElement.scrollTop ) )
        {
            //IE6 standards compliant mode
            scrOfY = document.documentElement.scrollTop;
            scrOfX = document.documentElement.scrollLeft;
        }
        
        return [scrOfX, scrOfY];
    }
};

//-------------------------
//--- END OF EVENT CODE ---
//-------------------------

//----------------------------
//--- START OF SELECT CODE ---
//----------------------------

var PSel = {
    disable: function(sel)
    {
        if(sel != null)
        {
            sel.disabled = true;
        }
    },
    enable: function(sel)
    {
        if(sel != null)
        {
            sel.disabled = false;
        }
    },
    add: function(sel, val, txt, unique)
    {
        var opt;
        
        if(!unique)
        {
            if(PBrowser.isFF)
            {
                opt = new Option(txt, val);
                sel.appendChild(opt);
            }
            else if(PBrowser.isSafari)
            {
                sel.options[sel.options.length] = new Option(txt, val);
                opt = sel.options[sel.options.length - 1];
            }
            else
            {
                opt = document.createElement("OPTION");
                sel.options.add(opt);
         
                opt.innerText = txt;
                opt.value = val;
            }
        }
        else
        {
            var found;
            var i;
            for(i = 0; i < sel.options.length; i++)
            {
                if(sel.options[i].value == val)
                {
                    found = true;
                    break;
                }
            }
            
            if(!found)
            {
                if(PBrowser.isFF)
                {
                    opt = new Option(txt, val);
                    sel.appendChild(opt);
                }
                else if(PBrowser.isSafari)
                {
                    sel.options[sel.options.length] = new Option(txt, val);
                    opt = sel.options[sel.options.length - 1];
                }
                else
                {
                    opt = document.createElement("OPTION");
                    sel.options.add(opt);
             
                    opt.innerText = txt;
                    opt.value = val;
                }
            }
        }
        
        return opt;
    },
    addWithTitle: function(sel, val, txt, unique)
    {
        if(!unique)
        {
            if(PBrowser.isFF)
            {
                var opt = new Option(txt, val);
                opt.title = txt;
                sel.appendChild(opt);
            }
            else if(PBrowser.isSafari)
            {
                sel.options[sel.options.length] = new Option(txt, val);
                sel.options[sel.options.length - 1].title = txt;
            }
            else
            {
                var opt = document.createElement("OPTION");
                sel.options.add(opt);
         
                opt.innerText = txt;
                opt.value = val;
                opt.title = txt;
            }
        }
        else
        {
            var found;
            var i;
            for(i = 0; i < sel.options.length; i++)
            {
                if(sel.options[i].value == val)
                {
                    found = true;
                    break;
                }
            }
            
            if(!found)
            {
                if(PBrowser.isFF)
                {
                    var opt = new Option(txt, val);
                    opt.title = txt;
                    sel.appendChild(opt);
                }
                else if(PBrowser.isSafari)
                {
                    sel.options[sel.options.length] = new Option(txt, val);
                    sel.options[sel.options.length - 1].title = txt;
                }
                else
                {
                    var opt = document.createElement("OPTION");
                    sel.options.add(opt);
             
                    opt.innerText = txt;
                    opt.value = val;
                    opt.title = txt;
                }
            }
        }
    },
    addAtIndex: function(sel, val, txt, index)
    {
        var opt;
        
        if(PBrowser.isFF)
        {
            opt = new Option(txt, val);
            sel.insertBefore(opt, sel.options[index]);
        }
        else if(PBrowser.isSafari)
        {
            //Move all the options after this option up 1 level.
            for(i = sel.options.length; i > index; i--)
            {
                sel.options[i] = new Option(sel.options[i - 1].text, sel.options[i - 1].value);
                sel.options[i].style.color = sel.options[i - 1].style.color;
            }

            sel.options[index] = new Option(txt, val);
            opt = sel.options[index];
        }
        else
        {
            opt = document.createElement("OPTION");
            sel.options.insertBefore(opt, sel.options[index]);

            opt.text = txt;
            opt.value = val;
        }
        
        return opt;
    },                   
    clear: function(sel, clearAll)
    {
        if(sel != null)
        {
            var i;
            if(clearAll)
            {
                if(PBrowser.isSafari)
                {
                    sel.options.length = 0;
                }
                else
                {
                    for(i = sel.options.length; i >= 0; i--)
                    {
                        sel.remove(i);
                    }
                }
            }
            else
            {
                if(PBrowser.isSafari)
                {
                    sel.options.length = 1;
                }
                else
                {
                    for(i = sel.options.length; i > 0; i--)
                    {
                        sel.remove(i);
                    }
                }
            }
        }
    },
    sort: function(sel)
    { 
        arrTexts = new Array(); 
        arrValues = new Array(); 
        arrOldTexts = new Array(); 

        for(i = 0; i < sel.length; i++) 
        { 
            arrTexts[i] = sel.options[i].text; 
            arrValues[i] = sel.options[i].value; 

            arrOldTexts[i] = sel.options[i].text; 
        } 

        arrTexts.sort(); 

        for(i = 0; i < sel.length; i++) 
        { 
            sel.options[i].text = arrTexts[i]; 
            for(j = 0; j < sel.length; j++) 
            { 
                if (arrTexts[i] == arrOldTexts[j])
                { 
                    sel.options[i].value = arrValues[j]; 
                    j = sel.length; 
                } 
            } 
        }
    },
    selectAll: function(sel)
    {
        for(i = 0; i < sel.length; i++) 
        { 
            sel.options[i].selected = true; 
        }
    },
    unSelectAll: function(sel)
    {
        for(i = 0; i < sel.length; i++) 
        { 
            sel.options[i].selected = false; 
        }
    },
    removeSelected: function(sel)
    {
        var i;
        for(i = sel.options.length - 1; i >= 0; i--)
        {
            if(sel.options[i].selected)
            {
                sel.remove(i);
            }
        }
    },
    removeValue: function(sel, val)
    {
        var i;
        for(i = sel.options.length - 1; i >= 0; i--)
        {
            if(sel.options[i].value == val)
            {
                sel.remove(i);
                break;
            }
        }
    }
};

//--------------------------
//--- END OF SELECT CODE ---
//--------------------------

//----------------------------------
//--- START OF ADMIN SUBMIT CODE ---
//----------------------------------

var PSubmit = {
    country: function(frm)
    {
        if(frm.countrycode.value == "")
        {
            alert("Please select a Country!");
            return false;
        }
        
        if(frm.featured_regions != null)
        {
            frm.featured_regions.multiple = true;
            PSel.selectAll(frm.featured_regions);
        }

        NicEdit.remove();
        
        return true;
    },
    region: function(frm)
    {
        if(frm.regionname.value == "")
        {
            alert("Please enter a Region Name!");
            return false;
        }
        
        NicEdit.remove();
        
        return true;
    },
    accommodation: function(frm)
    {
        if(frm.accname.value == "")
        {
            alert("Please enter an Accommodation Name!");
            return false;
        }
        
        NicEdit.remove();
        
        return true;
    },
    tour: function(frm)
    {
        if(frm.tourname.value == "")
        {
            alert("Please enter a Tour Name!");
            return false;
        }
        
        NicEdit.remove();
        
        return true;
    },
    accommodationType: function(frm)
    {
        if(frm["delete"].value == "" && frm.newtype.value == "")
        {
            alert("Please enter a new Accommodation Type Name!");
            return false;
        }
        
        return PAjax.post(frm, "content");
    },
    tourType: function(frm)
    {
        if(frm["delete"].value == "" && frm.newtype.value == "")
        {
            alert("Please enter a new Tour Type Name!");
            return false;
        }
        
        return PAjax.post(frm, "content");
    }
};

//--------------------------------
//--- END OF ADMIN SUBMIT CODE ---
//--------------------------------

//-----------------------------------
//--- START OF COUNTRY ADMIN CODE ---
//-----------------------------------

var PCountry = {
    addFeatured: function(frm)
    {
        var i;
        for(i = 0; i < frm.regions.options.length; i++)
        {
            if(frm.regions.options[i].selected)
            {
                PSel.add(frm.featured_regions, frm.regions.options[i].value, frm.regions.options[i].text, true);
                PSel.removeSelected(frm.regions);
                
                return;
            }
        }
        
        alert("Please select a Region!");
    },
    removeFeatured: function(frm)
    {
        var i;
        for(i = 0; i < frm.featured_regions.options.length; i++)
        {
            if(frm.featured_regions.options[i].selected)
            {
                PSel.add(frm.regions, frm.featured_regions.options[i].value, frm.featured_regions.options[i].text, true);
                PSel.removeSelected(frm.featured_regions);
                PSel.sort(frm.regions);
                
                return;
            }
        }
        
        alert("Please select a Region!");
    },
    moveUp: function(frm)
    {
        var i;
        for(i = 1; i < frm.featured_regions.options.length; i++)
        {
            if(frm.featured_regions.options[i].selected)
            {
                var val = frm.featured_regions.options[i].value;
                var txt = frm.featured_regions.options[i].text;
                
                frm.featured_regions.options[i].value = frm.featured_regions.options[i - 1].value;
                frm.featured_regions.options[i].text = frm.featured_regions.options[i - 1].text;
                
                frm.featured_regions.options[i - 1].value = val;
                frm.featured_regions.options[i - 1].text = txt;
                
                frm.featured_regions.selectedIndex--;
                
                return;
            }
        }
    },
    moveDown: function(frm)
    {
        var i;
        for(i = 0; i < frm.featured_regions.options.length - 1; i++)
        {
            if(frm.featured_regions.options[i].selected)
            {
                var val = frm.featured_regions.options[i].value;
                var txt = frm.featured_regions.options[i].text;
                
                frm.featured_regions.options[i].value = frm.featured_regions.options[i + 1].value;
                frm.featured_regions.options[i].text = frm.featured_regions.options[i + 1].text;
                
                frm.featured_regions.options[i + 1].value = val;
                frm.featured_regions.options[i + 1].text = txt;
                
                frm.featured_regions.selectedIndex++;
                
                return;
            }
        }
    }
};

//---------------------------------
//--- END OF COUNTRY ADMIN CODE ---
//---------------------------------

//-----------------------------------------
//--- START OF ACCOMMODATION ADMIN CODE ---
//-----------------------------------------

var PAccommodation = {
    addRate: function(tbl)
    {
        var tBody = tbl.getElementsByTagName("TBODY")[0];
        var rows = tBody.getElementsByTagName("TR");
        var rowNum = rows.length - 1;
        
        var row = document.createElement("TR");
        row.vAlign = "top";
        row.style.backgroundColor = rowNum % 2 == 0 ? "#DDDDDD" : "#CCCCCC";
        var newRow = tBody.insertBefore(row, rows[rows.length - 1]);
        
        var td1 = document.createElement("TD");
        td1.style.cssText = "padding:2px;border-bottom:1px solid #AAAAAA;border-left:1px solid #AAAAAA;border-right:1px solid #AAAAAA;text-align:center;";
        td1.innerHTML = "<input type=\"checkbox\" name=\"rate" + rowNum + "_chk\" id=\"rate" + rowNum + "_chk\" />";
        newRow.appendChild(td1);
        
        var td2 = document.createElement("TD");
        td2.style.cssText = "padding:2px;border-bottom:1px solid #AAAAAA;border-right:1px solid #AAAAAA;";
        td2.innerHTML = "<input type=\"text\" name=\"rate" + rowNum + "_startdate\" id=\"rate" + rowNum + "_startdate\" value=\"\" style=\"width:100px;\" onclick=\"PCal.show('rate" + rowNum + "_startdate', null, 'yyyy/mm/dd', event);\" /><input type=\"button\" value=\"...\" style=\"height:21px;\" onclick=\"PCal.show('rate" + rowNum + "_startdate', null, 'yyyy/mm/dd', event);\" />";
        newRow.appendChild(td2);
        
        var td3 = document.createElement("TD");
        td3.style.cssText = "padding:2px;border-bottom:1px solid #AAAAAA;border-right:1px solid #AAAAAA;";
        td3.innerHTML = "<select name=\"rate" + rowNum + "_priceperson1currency\" id=\"rate" + rowNum + "_priceperson1currency\" style=\"width:100px;\"></select>\r\n" +
                        "<input type=\"text\" name=\"rate" + rowNum + "_priceperson1\" id=\"rate" + rowNum + "_priceperson1\" value=\"\" style=\"width:100px;text-align:right;\" /><br />" + 
                        " <br /><b>Price Per Unit</b><br />" +
                        "<select name=\"rate" + rowNum + "_priceperson2currency\" id=\"rate" + rowNum + "_priceperson2currency\" style=\"width:100px;\"></select>\r\n" + 
                        "<input type=\"text\" name=\"rate" + rowNum + "_priceperson2\" id=\"rate" + rowNum + "_priceperson2\" value=\"\" style=\"width:100px;text-align:right;\" />";
        newRow.appendChild(td3);
        
        var td4 = document.createElement("TD");
        td4.style.cssText = "padding:2px;border-bottom:1px solid #AAAAAA;border-right:1px solid #AAAAAA;";
        td4.innerHTML = "<select name=\"rate" + rowNum + "_pricesingle1currency\" id=\"rate" + rowNum + "_pricesingle1currency\" style=\"width:100px;\"></select>\r\n" +
                        "<input type=\"text\" name=\"rate" + rowNum + "_pricesingle1\" id=\"rate" + rowNum + "_pricesingle1\" value=\"\" style=\"width:100px;text-align:right;\" /><br />" + 
                        "<select name=\"rate" + rowNum + "_pricesingle2currency\" id=\"rate" + rowNum + "_pricesingle2currency\" style=\"width:100px; visibility:hidden;\"></select>\r\n" + 
                        "<input type=\"text\" name=\"rate" + rowNum + "_pricesingle2\" id=\"rate" + rowNum + "_pricesingle2\" value=\"\" style=\"width:100px;text-align:right; visibility:hidden;\" />";
        newRow.appendChild(td4);
        
        var i;
        for(i = 0; i < currencies.length; i++)
        {
            PSel.add(PContent.$("rate" + rowNum + "_priceperson1currency"), currencies[i][0], "(" + currencies[i][0] + ") " + currencies[i][1], false);
            PSel.add(PContent.$("rate" + rowNum + "_priceperson2currency"), currencies[i][0], "(" + currencies[i][0] + ") " + currencies[i][1], false);
            PSel.add(PContent.$("rate" + rowNum + "_pricesingle1currency"), currencies[i][0], "(" + currencies[i][0] + ") " + currencies[i][1], false);
            PSel.add(PContent.$("rate" + rowNum + "_pricesingle2currency"), currencies[i][0], "(" + currencies[i][0] + ") " + currencies[i][1], false);
            
            if(currencies[i][0] == "ZAR")
            {
                PContent.$("rate" + rowNum + "_priceperson1currency").value = "ZAR";
                PContent.$("rate" + rowNum + "_priceperson2currency").value = "ZAR";
                PContent.$("rate" + rowNum + "_pricesingle1currency").value = "ZAR";
                PContent.$("rate" + rowNum + "_pricesingle2currency").value = "ZAR";
            }
        }
    },
    deleteRates: function(tbl)
    {
        var tBody = tbl.getElementsByTagName("TBODY")[0];
        var found = false;
        var done = false;
        var i;
        
        //Check if all are removed.
        var rows = tBody.getElementsByTagName("TR");
        var allRemoved = true;
        
        for(i = rows.length; i >= 1; i--)
        {
            var chk = PContent.$("rate" + i + "_chk");
            if(chk != null)
            {
                if(!chk.checked)
                {
                    allRemoved = false;
                }
            }
        }
        
        //Remove the rows.
        while(!done)
        {
            done = true;
            
            rows = tBody.getElementsByTagName("TR");

            for(i = rows.length; i >= 1; i--)
            {
                var chk = PContent.$("rate" + i + "_chk");
                if(chk != null)
                {
                    if(chk.checked)
                    {
                        var row = chk;
                        while(row.tagName != "TR")
                        {
                            row = row.parentNode;
                        }
                        
                        tBody.removeChild(row);
                        
                        found = true;
                        break;
                    }
                }
            }
            
            if(i > 1)
            {
                done = false;
            }
        }
        
        if(found)
        {
            //Renumber the rows.
            rows = tBody.getElementsByTagName("TR");
            
            for(i = 1; i < rows.length - 1; i++)
            {
                rows[i].style.backgroundColor = i % 2 == 0 ? "#CCCCCC" : "#DDDDDD";
                
                var elms = rows[i].getElementsByTagName("*");
                var j;
                
                for(j = 0; j < elms.length; j++)
                {
                    if(elms[j].id.indexOf("rate") > -1)
                    {
                        var oldNum = elms[j].id.substring(0, elms[j].id.indexOf("_")).replace("rate", "");
                        var oldId = elms[j].id;
                        
                        elms[j].id = elms[j].id.replace("rate" + oldNum + "_", "rate" + i + "_");
                        elms[j].name = elms[j].id;
                    }
                }
            }
        }
    },
    toggle: function(chk)
    {
        var chks = chk.form.getElementsByTagName("INPUT");
        var i;
        
        for(i = 0; i < chks.length; i++)
        {
            if(chks[i].type == "checkbox")
            {
                if(chks[i].id.indexOf("rate") > -1)
                {
                    chks[i].checked = chk.checked;
                }
            }
        }
    }
};

//---------------------------------------
//--- END OF ACCOMMODATION ADMIN CODE ---
//---------------------------------------

//--------------------------------
//--- START OF TOUR ADMIN CODE ---
//--------------------------------

var PTour = {
    addLocation: function(tbl)
    {
        var tBody = tbl.getElementsByTagName("TBODY")[0];
        var rows = tBody.getElementsByTagName("TR");
        var rowNum = rows.length - 2;
        
        var row = document.createElement("TR");
        row.vAlign = "top";
        row.style.backgroundColor = rowNum % 2 == 0 ? "#DDDDDD" : "#CCCCCC";
        var newRow = tBody.insertBefore(row, rows[rows.length - 1]);
        
        var td1 = document.createElement("TD");
        td1.style.cssText = "padding:2px;border-bottom:1px solid #AAAAAA;border-left:1px solid #AAAAAA;border-right:1px solid #AAAAAA;text-align:center;";
        td1.innerHTML = "<input type=\"checkbox\" name=\"location" + rowNum + "_chk\" id=\"location" + rowNum + "_chk\" />";
        newRow.appendChild(td1);
        
        var td2 = document.createElement("TD");
        td2.style.cssText = "padding:2px;border-bottom:1px solid #AAAAAA;border-right:1px solid #AAAAAA;";
        td2.innerHTML = "<input type=\"text\" name=\"location" + rowNum + "_name\" id=\"location" + rowNum + "_name\" value=\"\" style=\"width:360px;\" />";
        newRow.appendChild(td2);
        
        var td3 = document.createElement("TD");
        td3.style.cssText = "padding:2px;border-bottom:1px solid #AAAAAA;border-right:1px solid #AAAAAA;";
        td3.innerHTML = "<select name=\"location" + rowNum + "_country\" id=\"location" + rowNum + "_country\" style=\"width:190px;margin:1px;\" onchange=\"PGeo.getCountryRegionsGPS(this, PContent.$('location" + rowNum + "_region'));\"></select><br /><select name=\"location" + rowNum + "_region\" id=\"location" + rowNum + "_region\" style=\"width:190px;margin:1px;\" onchange=\"if(this.value != ''){ PContent.$('location" + rowNum + "_lat').value = this.value.split('|')[1]; PContent.$('location" + rowNum + "_lng').value = this.value.split('|')[2]; }\"></select>";
        newRow.appendChild(td3);
        
        var sel = PContent.$("location" + rowNum + "_country");
        var opts = PContent.$("location" + (rowNum - 1) + "_country").options;
        var i;
        
        for(i = 0; i < opts.length; i++)
        {
            PSel.add(sel, opts[i].value, opts[i].text, false);
            
            if(opts[i].selected)
            {
                sel.selectedIndex = i;
            }
        }
        
        sel = PContent.$("location" + rowNum + "_region");
        opts = PContent.$("location" + (rowNum - 1) + "_region").options;
        
        for(i = 0; i < opts.length; i++)
        {
            PSel.add(sel, opts[i].value, opts[i].text, false);
            
            if(opts[i].selected)
            {
                sel.selectedIndex = i;
            }
        }
        
        var td4 = document.createElement("TD");
        td4.style.cssText = "padding:2px;border-bottom:1px solid #AAAAAA;border-right:1px solid #AAAAAA;";
        td4.innerHTML = "<input type=\"text\" name=\"location" + rowNum + "_lat\" id=\"location" + rowNum + "_lat\" value=\"\" style=\"width:140px;\" /><br /><input type=\"text\" name=\"location" + rowNum + "_lng\" id=\"location" + rowNum + "_lng\" value=\"\" style=\"width:140px;\" />";
        newRow.appendChild(td4);
    },
    deleteLocations: function(tbl)
    {
        var tBody = tbl.getElementsByTagName("TBODY")[0];
        var found = false;
        var done = false;
        var i;
        
        //Check if all are removed.
        var rows = tBody.getElementsByTagName("TR");
        var allRemoved = true;
        
        for(i = rows.length; i >= 1; i--)
        {
            var chk = PContent.$("location" + i + "_chk");
            if(chk != null)
            {
                if(!chk.checked)
                {
                    allRemoved = false;
                }
            }
        }
        
        if(allRemoved)
        {
            alert("Can't delete all locations!");
            return;
        }
        
        //Remove the rows.
        while(!done)
        {
            done = true;
            
            rows = tBody.getElementsByTagName("TR");

            for(i = rows.length; i >= 1; i--)
            {
                var chk = PContent.$("location" + i + "_chk");
                if(chk != null)
                {
                    if(chk.checked)
                    {
                        var row = chk;
                        while(row.tagName != "TR")
                        {
                            row = row.parentNode;
                        }
                        
                        tBody.removeChild(row);
                        
                        found = true;
                        break;
                    }
                }
            }
            
            if(i > 1)
            {
                done = false;
            }
        }
        
        if(found)
        {
            //Renumber the rows.
            rows = tBody.getElementsByTagName("TR");
            
            for(i = 2; i < rows.length - 1; i++)
            {
                rows[i].style.backgroundColor = i % 2 == 0 ? "#CCCCCC" : "#DDDDDD";
                
                var elms = rows[i].getElementsByTagName("*");
                var j;
                
                for(j = 0; j < elms.length; j++)
                {
                    if(elms[j].id.indexOf("location") > -1)
                    {
                        var oldNum = elms[j].id.substring(0, elms[j].id.indexOf("_")).replace("location", "");
                        var oldId = elms[j].id;
                        
                        elms[j].id = elms[j].id.replace("location" + oldNum + "_", "location" + (i - 1) + "_");
                        elms[j].name = elms[j].id;
                    }
                }
            }
        }
    },
    toggle: function(chk)
    {
        var chks = chk.form.getElementsByTagName("INPUT");
        var i;
        
        for(i = 0; i < chks.length; i++)
        {
            if(chks[i].type == "checkbox")
            {
                if(chks[i].id.indexOf("location") > -1)
                {
                    chks[i].checked = chk.checked;
                }
            }
        }
    }
};

//------------------------------
//--- END OF TOUR ADMIN CODE ---
//------------------------------

//-------------------------------------
//--- START OF ADDITIONAL INFO CODE ---
//-------------------------------------

var PAdditionalInfo = {
    addInfo: function(tbl)
    {
        var tBody = tbl.getElementsByTagName("TBODY")[0];
        var rows = tBody.getElementsByTagName("TR");
        var rowNum = rows.length - 1;
        
        var row = document.createElement("TR");
        row.vAlign = "top";
        row.style.backgroundColor = rowNum % 2 == 0 ? "#DDDDDD" : "#CCCCCC";
        var newRow = tBody.insertBefore(row, rows[rows.length - 1]);
        
        var td1 = document.createElement("TD");
        td1.style.cssText = "padding:2px;border-bottom:1px solid #AAAAAA;border-left:1px solid #AAAAAA;border-right:1px solid #AAAAAA;text-align:center;";
        td1.innerHTML = "<input type=\"checkbox\" name=\"additionalinfo" + rowNum + "_chk\" id=\"additionalinfo" + rowNum + "_chk\" />";
        newRow.appendChild(td1);
                                    
        var td2 = document.createElement("TD");
        td2.style.cssText = "padding:2px;border-bottom:1px solid #AAAAAA;border-right:1px solid #AAAAAA;";
        td2.innerHTML = "<textarea name=\"additionalinfo" + rowNum + "_title\" id=\"additionalinfo" + rowNum + "_title\" class=\"noeditor\" style=\"width:135px;\" rows=\"6\"></textarea>";
        newRow.appendChild(td2);
        
        var td3 = document.createElement("TD");
        td3.style.cssText = "padding:2px;border-bottom:1px solid #AAAAAA;border-right:1px solid #AAAAAA;";
        td3.innerHTML = "<div style=\"width:570px;background-color:#FFFFFF;\"><textarea name=\"additionalinfo" + rowNum + "_content\" id=\"additionalinfo" + rowNum + "_content\" style=\"width:570px;\"></textarea></div>";
        newRow.appendChild(td3);
        
        NicEdit.createInstance("additionalinfo" + rowNum + "_content");
    },
    deleteInfo: function(tbl)
    {
        var tBody = tbl.getElementsByTagName("TBODY")[0];
        var found = false;
        var done = false;
        var i;
        
        //Check if all are removed.
        var rows = tBody.getElementsByTagName("TR");
        var allRemoved = true;
        
        for(i = rows.length; i >= 1; i--)
        {
            var chk = PContent.$("additionalinfo" + i + "_chk");
            if(chk != null)
            {
                if(!chk.checked)
                {
                    allRemoved = false;
                }
            }
        }
        
        //Remove the rows.
        while(!done)
        {
            done = true;
            
            rows = tBody.getElementsByTagName("TR");

            for(i = rows.length; i >= 1; i--)
            {
                var chk = PContent.$("additionalinfo" + i + "_chk");
                if(chk != null)
                {
                    if(chk.checked)
                    {
                        var row = chk;
                        while(row.tagName != "TR")
                        {
                            row = row.parentNode;
                        }
                        
                        tBody.removeChild(row);
                        
                        found = true;
                        break;
                    }
                }
            }
            
            if(i > 1)
            {
                done = false;
            }
        }
        
        if(found)
        {
            //Renumber the rows.
            rows = tBody.getElementsByTagName("TR");
            
            for(i = 1; i < rows.length - 1; i++)
            {
                rows[i].style.backgroundColor = i % 2 == 0 ? "#CCCCCC" : "#DDDDDD";
                
                var elms = rows[i].getElementsByTagName("*");
                var j;
                
                for(j = 0; j < elms.length; j++)
                {
                    if(elms[j].id.indexOf("additionalinfo") > -1)
                    {
                        var oldNum = elms[j].id.substring(0, elms[j].id.indexOf("_")).replace("additionalinfo", "");
                        var oldId = elms[j].id;
                        
                        elms[j].id = elms[j].id.replace("additionalinfo" + oldNum + "_", "additionalinfo" + i + "_");
                        elms[j].name = elms[j].id;
                    }
                }
            }
        }
    },
    toggle: function(chk)
    {
        var chks = chk.form.getElementsByTagName("INPUT");
        var i;
        
        for(i = 0; i < chks.length; i++)
        {
            if(chks[i].type == "checkbox")
            {
                if(chks[i].id.indexOf("additionalinfo") > -1)
                {
                    chks[i].checked = chk.checked;
                }
            }
        }
    }
};

//-------------------------------------
//--- START OF ADDITIONAL INFO CODE ---
//-------------------------------------

//-------------------------------
//--- START OF PARAGRAPH CODE ---
//-------------------------------

var PParagraph = {
    add: function(tbl, type) {
        var tBody = tbl.getElementsByTagName("TBODY")[0];
        var tRows = tBody.childNodes;
        var rows = new Array();
        var i;

        for (i = 0; i < tRows.length; i++) {
            if (tRows[i].tagName == "TR") {
                rows[rows.length] = tRows[i];
            }
        }

        var rowNum = rows.length - 1;

        var row = document.createElement("TR");
        row.vAlign = "top";
        row.style.backgroundColor = rowNum % 2 == 0 ? "#DDDDDD" : "#CCCCCC";
        var newRow = tBody.insertBefore(row, rows[rows.length - 1]);

        var td1 = document.createElement("TD");
        td1.style.cssText = "padding:2px;border-bottom:1px solid #AAAAAA;border-left:1px solid #AAAAAA;border-right:1px solid #AAAAAA;text-align:center;";
        td1.innerHTML = "<input type=\"hidden\" name=\"paragraph" + rowNum + "_type\" id=\"paragraph" + rowNum + "_type\" value=\"" + type + "\" /><input type=\"checkbox\" name=\"paragraph" + rowNum + "_chk\" id=\"paragraph" + rowNum + "_chk\" />";
        newRow.appendChild(td1);

        var td2 = document.createElement("TD");
        td2.style.cssText = "padding:2px;border-bottom:1px solid #AAAAAA;border-right:1px solid #AAAAAA;";

        if (type == 1) {
            td2.innerHTML = "<div style=\"width:590px;background-color:#FFFFFF;\"><textarea name=\"paragraph" + rowNum + "_1_content\" id=\"paragraph" + rowNum + "_1_content\" style=\"width:590px;\" rows=\"6\"></textarea></div>";

            window.setTimeout("NicEdit.createInstance(\"paragraph" + rowNum + "_1_content\");", 100);
        }
        else if (type == 2) {
            var html = "<table cellspacing=\"0\" cellpadding=\"0\" border=\"0\" width=\"590\"><tr>";
            html += "<td style=\"padding:2px;\"><div style=\"width:290px;background-color:#FFFFFF;\"><textarea name=\"paragraph" + rowNum + "_1_content\" id=\"paragraph" + rowNum + "_1_content\" style=\"width:290px;\" rows=\"6\"></textarea></div></td>";
            html += "<td style=\"padding:2px;\"><div style=\"width:290px;background-color:#FFFFFF;\"><textarea name=\"paragraph" + rowNum + "_2_content\" id=\"paragraph" + rowNum + "_2_content\" style=\"width:290px;\" rows=\"6\"></textarea></div></td>";
            html += "</tr></table>";

            td2.innerHTML = html;

            window.setTimeout("NicEdit.createInstance(\"paragraph" + rowNum + "_1_content\");NicEdit.createInstance(\"paragraph" + rowNum + "_2_content\");", 100);
        }
        else if (type == 3) {
            var html = "<table cellspacing=\"0\" cellpadding=\"0\" border=\"0\" width=\"590\">";
            html += "<tr valign=\"top\">";
            html += "<td style=\"padding:2px;\">";
            html += "<div style=\"width:290px;background-color:#FFFFFF;\"><textarea name=\"paragraph" + rowNum + "_1_content\" id=\"paragraph" + rowNum + "_1_content\" style=\"width:290px;\" rows=\"6\"></textarea></div>";
            html += "</td>";
            html += "<td style=\"padding:2px;\">";
            html += "<div style=\"width:290px;background-color:#EEEEEE;\">";
            html += "<table cellspacing=\"0\" cellpadding=\"2\" border=\"0\" width=\"290\">";
            html += "<tr><td colspan=\"2\"><input type=\"hidden\" name=\"paragraph" + rowNum + "_2_image\" id=\"paragraph" + rowNum + "_2_image\" value=\"\" /></td></tr>";
            html += "<tr><td>New Image:</td><td><input type=\"file\" name=\"paragraph" + rowNum + "_2_newimage\" id=\"paragraph" + rowNum + "_2_newimage\" /></td></tr>";
            html += "<tr><td>Title:</td><td><input type=\"text\" name=\"paragraph" + rowNum + "_2_imagetitle\" id=\"paragraph" + rowNum + "_2_imagetitle\" style=\"width:200px;\" /></td></tr>";
            html += "<tr><td>Url:</td><td><input type=\"text\" name=\"paragraph" + rowNum + "_2_imageurl\" id=\"paragraph" + rowNum + "_2_imageurl\" style=\"width:200px;\" /></td></tr>";
            html += "<tr><td>Width:</td><td><input type=\"text\" name=\"paragraph" + rowNum + "_2_imagewidth\" id=\"paragraph" + rowNum + "_2_imagewidth\" style=\"width:100px;\" /> pixels</td></tr>";
            html += "<tr><td>Height:</td><td><input type=\"text\" name=\"paragraph" + rowNum + "_2_imageheight\" id=\"paragraph" + rowNum + "_2_imageheight\" style=\"width:100px;\" /> pixels</td></tr>";
            html += "</table>";
            html += "</div>";
            html += "</td>";
            html += "</tr>";
            html += "</table>";

            td2.innerHTML = html;

            window.setTimeout("NicEdit.createInstance(\"paragraph" + rowNum + "_1_content\");", 100);
        }
        else if (type == 4) {
            var html = "<table cellspacing=\"0\" cellpadding=\"0\" border=\"0\" width=\"590\"><tr valign=\"top\">";
            html += "<td style=\"padding:2px;\">";
            html += "<div style=\"width:290px;background-color:#EEEEEE;\">";
            html += "<table cellspacing=\"0\" cellpadding=\"2\" border=\"0\" width=\"290\">";
            html += "<tr><td colspan=\"2\"><input type=\"hidden\" name=\"paragraph" + rowNum + "_1_image\" id=\"paragraph" + rowNum + "_1_image\" value=\"\" /></td></tr>";
            html += "<tr><td>New Image:</td><td><input type=\"file\" name=\"paragraph" + rowNum + "_1_newimage\" id=\"paragraph" + rowNum + "_1_newimage\" /></td></tr>";
            html += "<tr><td>Title:</td><td><input type=\"text\" name=\"paragraph" + rowNum + "_1_imagetitle\" id=\"paragraph" + rowNum + "_1_imagetitle\" style=\"width:200px;\" /></td></tr>";
            html += "<tr><td>Url:</td><td><input type=\"text\" name=\"paragraph" + rowNum + "_1_imageurl\" id=\"paragraph" + rowNum + "_1_imageurl\" style=\"width:200px;\" /></td></tr>";
            html += "<tr><td>Width:</td><td><input type=\"text\" name=\"paragraph" + rowNum + "_1_imagewidth\" id=\"paragraph" + rowNum + "_1_imagewidth\" style=\"width:100px;\" /> pixels</td></tr>";
            html += "<tr><td>Height:</td><td><input type=\"text\" name=\"paragraph" + rowNum + "_1_imageheight\" id=\"paragraph" + rowNum + "_1_imageheight\" style=\"width:100px;\" /> pixels</td></tr>";
            html += "</table>";
            html += "</div>";
            html += "</td>";
            html += "<td style=\"padding:2px;\">";
            html += "<div style=\"width:290px;background-color:#FFFFFF;\"><textarea name=\"paragraph" + rowNum + "_2_content\" id=\"paragraph" + rowNum + "_2_content\" style=\"width:290px;\" rows=\"6\"></textarea></div>";
            html += "</td>";
            html += "</tr>";
            html += "</table>";

            td2.innerHTML = html;

            window.setTimeout("NicEdit.createInstance(\"paragraph" + rowNum + "_2_content\");", 100);
        }
        else if (type == 5) {
            var html = "<table cellspacing=\"0\" cellpadding=\"0\" border=\"0\" width=\"590\"><tr valign=\"top\">";
            html += "<td style=\"padding:2px;\">";
            html += "<div style=\"width:290px;background-color:#EEEEEE;\">";
            html += "<table cellspacing=\"0\" cellpadding=\"2\" border=\"0\" width=\"290\">";
            html += "<tr><td colspan=\"2\"><input type=\"hidden\" name=\"paragraph" + rowNum + "_1_image\" id=\"paragraph" + rowNum + "_1_image\" value=\"\" /></td></tr>";
            html += "<tr><td>New Image:</td><td><input type=\"file\" name=\"paragraph" + rowNum + "_1_newimage\" id=\"paragraph" + rowNum + "_1_newimage\" /></td></tr>";
            html += "<tr><td>Title:</td><td><input type=\"text\" name=\"paragraph" + rowNum + "_1_imagetitle\" id=\"paragraph" + rowNum + "_1_imagetitle\" style=\"width:200px;\" /></td></tr>";
            html += "<tr><td>Url:</td><td><input type=\"text\" name=\"paragraph" + rowNum + "_1_imageurl\" id=\"paragraph" + rowNum + "_1_imageurl\" style=\"width:200px;\" /></td></tr>";
            html += "<tr><td>Width:</td><td><input type=\"text\" name=\"paragraph" + rowNum + "_1_imagewidth\" id=\"paragraph" + rowNum + "_1_imagewidth\" style=\"width:100px;\" /> pixels</td></tr>";
            html += "<tr><td>Height:</td><td><input type=\"text\" name=\"paragraph" + rowNum + "_1_imageheight\" id=\"paragraph" + rowNum + "_1_imageheight\" style=\"width:100px;\" /> pixels</td></tr>";
            html += "</table>";
            html += "</div>";
            html += "</td>";
            html += "<td style=\"padding:2px;\">";
            html += "<div style=\"width:290px;background-color:#EEEEEE;\">";
            html += "<table cellspacing=\"0\" cellpadding=\"2\" border=\"0\" width=\"290\">";
            html += "<tr><td colspan=\"2\"><input type=\"hidden\" name=\"paragraph" + rowNum + "_2_image\" id=\"paragraph" + rowNum + "_2_image\" value=\"\" /></td></tr>";
            html += "<tr><td>New Image:</td><td><input type=\"file\" name=\"paragraph" + rowNum + "_2_newimage\" id=\"paragraph" + rowNum + "_2_newimage\" /></td></tr>";
            html += "<tr><td>Title:</td><td><input type=\"text\" name=\"paragraph" + rowNum + "_2_imagetitle\" id=\"paragraph" + rowNum + "_2_imagetitle\" style=\"width:200px;\" /></td></tr>";
            html += "<tr><td>Url:</td><td><input type=\"text\" name=\"paragraph" + rowNum + "_2_imageurl\" id=\"paragraph" + rowNum + "_2_imageurl\" style=\"width:200px;\" /></td></tr>";
            html += "<tr><td>Width:</td><td><input type=\"text\" name=\"paragraph" + rowNum + "_2_imagewidth\" id=\"paragraph" + rowNum + "_2_imagewidth\" style=\"width:100px;\" /> pixels</td></tr>";
            html += "<tr><td>Height:</td><td><input type=\"text\" name=\"paragraph" + rowNum + "_2_imageheight\" id=\"paragraph" + rowNum + "_2_imageheight\" style=\"width:100px;\" /> pixels</td></tr>";
            html += "</table>";
            html += "</div>";
            html += "</td>";
            html += "</tr>";
            html += "</table>";

            td2.innerHTML = html;
            window.setTimeout("NicEdit.createInstance(\"paragraph" + rowNum + "_2_content\");", 100);
        }
        else if (type == 6) {

            var html = "<table cellspacing=\"0\" cellpadding=\"0\" border=\"0\" width=\"590\">";
            html += "<tr valign=\"top\">";
            html += "<td style=\"padding:2px;\">";
            html += "<div style=\"width:290px;background-color:#EEEEEE;\">";
            html += "<table cellspacing=\"0\" cellpadding=\"2\" border=\"0\" width=\"290\">";
            html += "<tr><td colspan=\"2\"><input type=\"hidden\" name=\"paragraph" + rowNum + "_1_image\" id=\"paragraph" + rowNum + "_1_image\" value=\"\" /></td></tr>";
            html += "<tr><td>New Image:</td><td><input type=\"file\" name=\"paragraph" + rowNum + "_1_newimage\" id=\"paragraph" + rowNum + "_1_newimage\" /></td></tr>";
            html += "<tr><td>Title:</td><td><input type=\"text\" name=\"paragraph" + rowNum + "_1_imagetitle\" id=\"paragraph" + rowNum + "_1_imagetitle\" style=\"width:200px;\" /></td></tr>";
            html += "<tr><td>Url:</td><td><input type=\"text\" name=\"paragraph" + rowNum + "_1_imageurl\" id=\"paragraph" + rowNum + "_1_imageurl\" style=\"width:200px;\" /></td></tr>";
            html += "<tr><td>Width:</td><td><input type=\"text\" name=\"paragraph" + rowNum + "_1_imagewidth\" id=\"paragraph" + rowNum + "_1_imagewidth\" style=\"width:100px;\" /> pixels</td></tr>";
            html += "<tr><td>Height:</td><td><input type=\"text\" name=\"paragraph" + rowNum + "_1_imageheight\" id=\"paragraph" + rowNum + "_1_imageheight\" style=\"width:100px;\" /> pixels</td></tr>";
            html += "</table>";
            html += "</div>";
            html += "</td>";

            html += "<td style=\"padding:2px;\">";

            html += "<div style=\"width:290px;background-color:#FFFFFF;\"><textarea name=\"paragraph" + rowNum + "_1_content\" id=\"paragraph" + rowNum + "_1_content\" style=\"width:290px;\" rows=\"2\"></textarea></div>";
            html += "</td>";
            html += "</tr>";

            html += "<tr>";
            html += "<td colspan=\"2\" style=\"padding:2px;\">";
            html += "<div style=\"width:580px;background-color:#FFFFFF;\"><textarea name=\"paragraph" + rowNum + "_2_content\" id=\"paragraph" + rowNum + "_2_content\" style=\"width:570px;\" rows=\"6\"></textarea></div>";
            html += "</td>";
            html += "</tr>";

            html += "<tr>";
            html += "<td colspan=\"'2\" style=\"padding:2px;\">";
            html += "<div style=\"width:580px;background-color:#FFFFFF;\"><textarea name=\"paragraph" + rowNum + "_3_content\" id=\"paragraph" + rowNum + "_3_content\" style=\"width:570px;\" rows=\"6\"></textarea></div>";
            html += "</td>";
            html += "</tr>";

            html += "</table>";
            td2.innerHTML = html;
            window.setTimeout("NicEdit.createInstance(\"paragraph" + rowNum + "_1_content\");", 100);
            window.setTimeout("NicEdit.createInstance(\"paragraph" + rowNum + "_2_content\");", 100);
            window.setTimeout("NicEdit.createInstance(\"paragraph" + rowNum + "_3_content\");", 100);
        }


        newRow.appendChild(td2);

        var td3 = document.createElement("TD");
        td3.style.cssText = "padding:2px;border-bottom:1px solid #AAAAAA;border-right:1px solid #AAAAAA;";
        td3.innerHTML = "&nbsp;";
        newRow.appendChild(td3);
    },
    del: function(tbl) {
        var tBody = tbl.getElementsByTagName("TBODY")[0];
        var found = false;
        var done = false;
        var i;

        //Check if all are removed.
        var tRows = tBody.childNodes;
        var rows = new Array();
        var i;

        for (i = 0; i < tRows.length; i++) {
            if (tRows[i].tagName == "TR") {
                rows[rows.length] = tRows[i];
            }
        }

        var allRemoved = true;

        for (i = rows.length; i >= 1; i--) {
            var chk = PContent.$("paragraph" + i + "_chk");
            if (chk != null) {
                if (!chk.checked) {
                    allRemoved = false;
                }
            }
        }

        //Remove the rows.
        while (!done) {
            done = true;

            rows = tBody.getElementsByTagName("TR");

            for (i = rows.length; i >= 1; i--) {
                var chk = PContent.$("paragraph" + i + "_chk");
                if (chk != null) {
                    if (chk.checked) {
                        var row = chk;
                        while (row.tagName != "TR") {
                            row = row.parentNode;
                        }

                        tBody.removeChild(row);

                        found = true;
                        break;
                    }
                }
            }

            if (i > 1) {
                done = false;
            }
        }

        if (found) {
            //Renumber the rows.
            tRows = tBody.childNodes;
            rows = new Array();

            for (i = 0; i < tRows.length; i++) {
                if (tRows[i].tagName == "TR") {
                    rows[rows.length] = tRows[i];
                }
            }

            for (i = 1; i < rows.length - 1; i++) {
                rows[i].style.backgroundColor = i % 2 == 0 ? "#CCCCCC" : "#DDDDDD";

                var elms = rows[i].getElementsByTagName("*");
                var j;

                for (j = 0; j < elms.length; j++) {
                    if (elms[j].id.indexOf("paragraph") > -1) {
                        var oldNum = elms[j].id.substring(0, elms[j].id.indexOf("_")).replace("paragraph", "");
                        var oldId = elms[j].id;

                        elms[j].id = elms[j].id.replace("paragraph" + oldNum + "_", "paragraph" + i + "_");
                        elms[j].name = elms[j].id;
                    }
                }
            }
        }
    },
    toggle: function(chk) {
        var chks = chk.form.getElementsByTagName("INPUT");
        var i;

        for (i = 0; i < chks.length; i++) {
            if (chks[i].type == "checkbox") {
                if (chks[i].id.indexOf("paragraph") > -1) {
                    chks[i].checked = chk.checked;
                }
            }
        }
    }
};

//-------------------------------
//--- END OF PARAGRAPH CODE ---
//-------------------------------

//---------------------------------
//--- START OF FOOTER LINK CODE ---
//---------------------------------

var PLink = {
    add: function (tbl) {
        var tBody = tbl.getElementsByTagName("TBODY")[0];
        var tRows = tBody.childNodes;
        var rows = new Array();
        var i;

        for (i = 0; i < tRows.length; i++) {
            if (tRows[i].tagName == "TR") {
                rows[rows.length] = tRows[i];
            }
        }

        var rowNum = rows.length;

        var row = document.createElement("TR");
        var newRow = tBody.appendChild(row);

        var td1 = document.createElement("TD");
        td1.style.cssText = "padding:5px 0px 5px 0px;border-bottom:1px solid #FFFFFF;";
        td1.innerHTML = "<input type=\"text\" name=\"footerlink" + rowNum + "_link\" value=\"\" style=\"width:230px;\" />";
        newRow.appendChild(td1);

        var td2 = document.createElement("TD");
        td2.style.cssText = "padding:5px 0px 5px 0px;border-bottom:1px solid #FFFFFF;";
        td2.innerHTML = "<input type=\"text\" name=\"footerlink" + rowNum + "_url\" value=\"\" style=\"width:230px;\" />";
        newRow.appendChild(td2);

        var td3 = document.createElement("TD");
        td3.style.cssText = "padding:5px 0px 5px 0px;border-bottom:1px solid #FFFFFF;";
        td3.innerHTML = "<td><input type=\"hidden\" name=\"footerlink" + rowNum + "_thumbnail\" value=\"\" /><input type=\"file\" name=\"footerlink" + rowNum + "_upload\" style=\"width:190px;\" /></td>";
        newRow.appendChild(td3);

        var td4 = document.createElement("TD");
        td4.style.cssText = "padding:5px 0px 5px 0px;border-bottom:1px solid #FFFFFF;";
        td4.innerHTML = "<input type=\"button\" value=\"delete\" onclick=\"PLink.del(PContent.$('tblFooterLinks'), this);\" />";
        newRow.appendChild(td4);
    },
    del: function (tbl, elm) {
        while (elm.tagName != "TR") {
            elm = elm.parentNode;
        }

        var tBody = tbl.getElementsByTagName("TBODY")[0];
        tBody.removeChild(elm);

        //Renumber the rows.
        var tRows = tBody.childNodes;
        var rows = new Array();

        for (i = 0; i < tRows.length; i++) {
            if (tRows[i].tagName == "TR") {
                rows[rows.length] = tRows[i];
            }
        }

        for (i = 1; i < rows.length; i++) {
            var elms = rows[i].getElementsByTagName("INPUT");
            var j;

            for (j = 0; j < elms.length; j++) {
                if (elms[j].name.indexOf("footerlink") > -1) {
                    var oldNum = elms[j].name.substring(0, elms[j].name.indexOf("_")).replace("footerlink", "");
                    var oldName = elms[j].name;

                    elms[j].name = elms[j].name.replace("footerlink" + oldNum + "_", "footerlink" + i + "_");
                }
            }
        }
    }
};

//-------------------------------
//--- END OF FOOTER LINK CODE ---
//-------------------------------

//---------------------------------
//--- START OF HOME SLIDER CODE ---
//---------------------------------

var PHomeBanner = {
    tmr: null,
    activeBannerNum: 1,
    bannerCount: 0,
    bannersLoaded: 0,
    imageLoad: function()
    {
        PHomeBanner.bannersLoaded++;
        
        if(PHomeBanner.bannersLoaded == PHomeBanner.bannerCount)
        {
            PHomeBanner.start();
        }
    },
    start: function()
    {
        try
        {
            var activeBanner = document.getElementById("homebanner" + PHomeBanner.activeBannerNum); 
            var activeBannerOpacity = parseInt(activeBanner.getAttribute("alt"));
            var prevBanner = document.getElementById("homebanner" + (PHomeBanner.activeBannerNum == 1 ? PHomeBanner.bannerCount : PHomeBanner.activeBannerNum - 1));
            var prevBannerOpacity = parseInt(prevBanner.getAttribute("alt"));
            
            activeBanner.style.zIndex = 10;
            prevBanner.style.zIndex = 1;
            
            if(activeBannerOpacity < 100)
            {
                activeBannerOpacity += 2;
                activeBanner.setAttribute("alt", activeBannerOpacity);
                
                if(PBrowser.isSafari | PBrowser.isFF | PBrowser.isChrome)
                {
                    activeBanner.style.opacity = activeBannerOpacity / 100;
                }
                else
                {
                    activeBanner.style.filter = "alpha(opacity=" + activeBannerOpacity + ")";
                }
                
                prevBannerOpacity -= 2;
                prevBanner.setAttribute("alt", prevBannerOpacity);
                
                if(PBrowser.isSafari | PBrowser.isFF | PBrowser.isChrome)
                {
                    prevBanner.style.opacity = prevBannerOpacity / 100;
                }
                else
                {
                    prevBanner.style.filter = "alpha(opacity=" + prevBannerOpacity + ")";
                }
                
                PHomeBanner.tmr = window.setTimeout("PHomeBanner.start();", 20);
            }
            else
            {                
                PHomeBanner.activeBannerNum++;
                
                if(PHomeBanner.activeBannerNum > PHomeBanner.bannerCount)
                {
                    PHomeBanner.activeBannerNum = 1;    
                }
                
                PHomeBanner.tmr = window.setTimeout("PHomeBanner.start();", 2000);
            }
        }
        catch(e){}
    }
};

//-------------------------------
//--- END OF HOME SLIDER CODE ---
//-------------------------------

//--------------------------------
//--- START OF GOOGLE MAP CODE ---
//--------------------------------

var PMap = {
    map: null,
    center: null,
    zoomLevel: null,
    markers: new Array(),
    baseIcon: null,
    init: function(mapId, width, height, gLatLng, zoomLevel, addControl)
    {
        if (GBrowserIsCompatible())
        {
            PMap.map = new GMap2(PContent.$(mapId), { size: new GSize(width, height) } );
            PMap.map.setCenter(gLatLng, zoomLevel);
            PMap.center = gLatLng;
            PMap.zoomLevel = zoomLevel;
            
            if(addControl)
            {
                PMap.map.addControl(new GSmallMapControl());
            }
            
            PMap.baseIcon = new GIcon(G_DEFAULT_ICON);
            PMap.baseIcon.shadow = "http://www.google.com/mapfiles/shadow50.png";
            PMap.baseIcon.iconSize = new GSize(20, 34);
            PMap.baseIcon.shadowSize = new GSize(37, 34);
            PMap.baseIcon.iconAnchor = new GPoint(9, 34);
            PMap.baseIcon.infoWindowAnchor = new GPoint(9, 2);
        }
        
        PMap.markers = new Array();
    },
    init2: function(mapId, width, height, gLatLngBounds, addControl)
    {
        if (GBrowserIsCompatible())
        {
            PMap.map = new GMap2(PContent.$(mapId), { size: new GSize(width, height) } );
            PMap.map.setCenter(gLatLngBounds.getCenter(), PMap.map.getBoundsZoomLevel(gLatLngBounds) - 1);
            PMap.center = PMap.map.getCenter();
            PMap.zoomLevel = PMap.map.getZoom();
            
            if(addControl)
            {
                PMap.map.addControl(new GSmallMapControl());
            }
            
            PMap.baseIcon = new GIcon(G_DEFAULT_ICON);
            PMap.baseIcon.shadow = "http://www.google.com/mapfiles/shadow50.png";
            PMap.baseIcon.iconSize = new GSize(20, 34);
            PMap.baseIcon.shadowSize = new GSize(37, 34);
            PMap.baseIcon.iconAnchor = new GPoint(9, 34);
            PMap.baseIcon.infoWindowAnchor = new GPoint(9, 2);
        }
        
        PMap.markers = new Array();
    },
    createMarker: function(id, gLatLng, html, icon)
    {
        var marker;
        
        if(icon == null)
        {
            marker = new GMarker(gLatLng);
        }
        else
        {
            var letter = String.fromCharCode("A".charCodeAt(0) + (icon - 1));
            var letteredIcon = new GIcon(PMap.baseIcon);
            letteredIcon.image = "http://www.google.com/mapfiles/marker" + letter + ".png";
            
            // Set up our GMarkerOptions object
            markerOptions = { icon:letteredIcon };
            var marker = new GMarker(gLatLng, markerOptions);
        }
        
        marker.bindInfoWindowHtml(html, null);
        GEvent.addListener(marker,"infowindowclose", function() { PMap.map.setCenter(PMap.center, PMap.zoomLevel); } );
        
        PMap.map.addOverlay(marker); 
        PMap.markers[PMap.markers.length] = [id, marker, html];
    },
    showMarkerPopup: function(id)
    {
        var i;
        for(i = 0; i < PMap.markers.length; i++)
        {
            if(PMap.markers[i][0] == id)
            {
                PMap.markers[i][1].openInfoWindow(PMap.markers[i][2]);
                break;
            }
        }
    },
    createLines: function(gLatLng)
    {
        var i;
        for(i = 0; i < gLatLng.length - 1; i++)
        {
            if(gLatLng[i][0] != gLatLng[i + 1][0] && gLatLng[i][1] != gLatLng[i + 1][1])
            {
                try
                {
                    var polyOptions = {geodesic:false};
                    var polyLine = new GPolyline([new GLatLng(gLatLng[i][0], gLatLng[i][1]), new GLatLng(gLatLng[i + 1][0], gLatLng[i + 1][1])], "#ff0000", 1, 1, polyOptions);
                    PMap.map.addOverlay(polyLine);
                }
                catch(e){}
            }
        }
    }
};

//------------------------------
//--- END OF GOOGLE MAP CODE ---
//------------------------------

//-------------------------
//--- START OF TAB CODE ---
//-------------------------

var PTab = {
    over: function(tr)
    {
        while(tr.tagName != "TR")
        {
            tr = tr.offsetParent;
        }
        
        var tds = tr.getElementsByTagName("TD");
        var i;
        
        for(i = 0; i < tds.length; i++)
        {
            if(tds[i].id == "tableft")
            {
                tds[i].getElementsByTagName("IMG")[0].src = adminSiteUrl + "/images/tabs/tab_left_over.jpg";
            }
            else if(tds[i].id == "tabmiddle")
            {
                tds[i].style.backgroundImage = "url('" + adminSiteUrl + "/images/tabs/tab_middle_over.jpg')";
                
                if(tds[i].getElementsByTagName("A")[0].className == "tabActive")
                {
                    tds[i].getElementsByTagName("A")[0].className = "tabActiveOver";
                }
                else
                {
                    tds[i].getElementsByTagName("A")[0].className = "tabInactiveOver";
                }
            }
            else if(tds[i].id == "tabright")
            {
                tds[i].getElementsByTagName("IMG")[0].src = adminSiteUrl + "/images/tabs/tab_right_over.jpg";
            }
        }
    },
    out: function(tr)
    {
        while(tr.tagName != "TR")
        {
            tr = tr.offsetParent;
        }
        
        var tds = tr.getElementsByTagName("TD");
        var i;
        
        for(i = 0; i < tds.length; i++)
        {
            if(tds[i].id == "tableft")
            {
                tds[i].getElementsByTagName("IMG")[0].src = adminSiteUrl + "/images/tabs/tab_left.jpg";
            }
            else if(tds[i].id == "tabmiddle")
            {
                tds[i].style.backgroundImage = "url('" + adminSiteUrl + "/images/tabs/tab_middle.jpg')";
                
                if(tds[i].getElementsByTagName("A")[0].className == "tabActiveOver")
                {
                    tds[i].getElementsByTagName("A")[0].className = "tabActive";
                }
                else
                {
                    tds[i].getElementsByTagName("A")[0].className = "tabInactive";
                }
            }
            else if(tds[i].id == "tabright")
            {
                tds[i].getElementsByTagName("IMG")[0].src = adminSiteUrl + "/images/tabs/tab_right.jpg";
            }
        }
    }
};

//-----------------------
//--- END OF TAB CODE ---
//-----------------------

//-----------------------------
//--- START OF ENQUIRY CODE ---
//-----------------------------

var PEnquiry = {
    submit: function(frm, thankyouUrl)
    {
        var i;
        for(i = 0; i < frm.length; i++)
        {
            if(frm[i].name == "arrive")
            {
                if(frm.arrive.value == "")
                {
                    alert("Please enter an Arrival Date!");
                    return false;
                }
            }
            
            if(frm[i].name == "depart")
            {
                if(frm.depart.value == "")
                {
                    alert("Please enter an Departure Date!");
                    return false;
                }
            }
            
            if(frm[i].name == "name")
            {
                if(frm["name"].value == "")
                {
                    alert("Please enter your Name!");
                    return false;
                }
            }
                
            if(frm[i].name == "email")
            {
                if(frm.email.value == "")
                {
                    alert("Please enter your Email Address!");
                    return false;
                }
            }
            
            if(frm[i].name == "adults")
            {
                if(frm.adults.value == "")
                {
                    alert("Please enter the number for Adults!");
                    return false;
                }
                else
                {
                    if(isNaN(frm.adults.value))
                    {
                        alert("Please enter a valid number for Adults!");
                        return false;
                    }
                }
            }
            
            if(frm[i].name == "children")
            {
                if(frm["children"].value != "")
                {
                    if(isNaN(frm["children"].value))
                    {
                        alert("Please enter a valid number for Children!");
                        return false;
                    }
                }
            }
        }
        
        //Parse the form.
        var form = "";
        
        for(i = 0; i < frm.length; i++)
        {
            if(frm[i].type == "radio")
            {
                if(frm[i].checked)
                {
                    form += frm[i].name + "=" + escape(frm[i].value) + "&";
                }
            }
            else if(frm[i].type == "checkbox")
            {
                if(frm[i].checked)
                {
                    form += frm[i].name + "=" + escape(frm[i].value) + "&";
                }
            }
            else if(frm[i].type == "select-one")
            {
                if(frm[i].options.length > 0)
                {
                    form += frm[i].name + "=" + escape(frm[i].value) + "&";
                }
            }
            else if(frm[i].type == "select-multiple")
            {
                var j;
                for(j = 0; j < frm[i].options.length; j++)
                {
                    if(frm[i].options[j].selected)
                    {
                        form += frm[i].name + "=" + escape(frm[i].options[j].value) + "&";
                    }
                }
            }
            else
            {
                form += frm[i].name + "=" + escape(frm[i].value) + "&";
            }
        }
        
        //Add the location.
        form += "url=" + escape(window.location.href) + "&";
        
        if(form != "")
        {
            form = form.substring(0, form.length - 1);
        }
        
        //Show Progress
        frm["submit"].value = "";
        var btnPos = PEvent.getElementPosition(frm["submit"]);
        var btnDim = PEvent.getElementDimensions(frm["submit"]);
        var busy = PContent.$("busy");
        
        busy.style.top = (btnPos[1] + Math.abs((btnDim[1] - 9) / 2) - 3) + "px";
        busy.style.left = (btnPos[0] + Math.abs((btnDim[0] - 16) / 2)) + "px";
        busy.style.visibility = "visible";
        
        //Get the new page.
        var xmlHttp = PAjax.getXmlHttpObject();
        xmlHttp.open("POST", frm.action, true);
        xmlHttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded; charset=ISO-8859-1");
        xmlHttp.setRequestHeader("Content-Length", form.length);

        xmlHttp.onreadystatechange = function(){
            if (xmlHttp.readyState == 4)
            {
                busy.style.visibility = "hidden";
                frm["submit"].value = "Enquire Now";
                
                eval(xmlHttp.responseText);
            }
        };
        xmlHttp.send(form);
        
        return false;
    }
};

//---------------------------
//--- END OF ENQUIRY CODE ---
//---------------------------

//---------------------------------------
//--- START OF NEWSLETTER SIGNUP CODE ---
//---------------------------------------

var PSignup = {
    submit: function(frm)
    {
        if(frm["name"].value == "")
        {
            alert("Please enter your Name!");
            return false;
        }

        if(frm.email.value == "")
        {
            alert("Please enter your Email Address!");
            return false;
        }
        
        //Parse the form.
        var form = "";
        
        for(i = 0; i < frm.length; i++)
        {
            if(frm[i].type == "radio")
            {
                if(frm[i].checked)
                {
                    form += frm[i].name + "=" + escape(frm[i].value) + "&";
                }
            }
            else if(frm[i].type == "checkbox")
            {
                if(frm[i].checked)
                {
                    form += frm[i].name + "=" + escape(frm[i].value) + "&";
                }
            }
            else if(frm[i].type == "select-one")
            {
                if(frm[i].options.length > 0)
                {
                    form += frm[i].name + "=" + escape(frm[i].value) + "&";
                }
            }
            else if(frm[i].type == "select-multiple")
            {
                var j;
                for(j = 0; j < frm[i].options.length; j++)
                {
                    if(frm[i].options[j].selected)
                    {
                        form += frm[i].name + "=" + escape(frm[i].options[j].value) + "&";
                    }
                }
            }
            else
            {
                form += frm[i].name + "=" + escape(frm[i].value) + "&";
            }
        }
        
        if(form != "")
        {
            form = form.substring(0, form.length - 1);
        }
        
        //Show Progress
        frm["submit"].value = "";
        var btnPos = PEvent.getElementPosition(frm["submit"]);
        var btnDim = PEvent.getElementDimensions(frm["submit"]);
        var busy = PContent.$("busy");
        
        busy.style.top = (btnPos[1] + Math.abs((btnDim[1] - 9) / 2) - 3) + "px";
        busy.style.left = (btnPos[0] + Math.abs((btnDim[0] - 16) / 2)) + "px";
        busy.style.visibility = "visible";

        //Get the new page.
        var xmlHttp = PAjax.getXmlHttpObject();
        xmlHttp.open("POST", frm.action, true);
        xmlHttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded; charset=ISO-8859-1");
        xmlHttp.setRequestHeader("Content-Length", form.length);

        xmlHttp.onreadystatechange = function(){
            if (xmlHttp.readyState == 4)
            {
                busy.style.visibility = "hidden";
                frm["submit"].value = "Sign Up Now";
                
                alert(xmlHttp.responseText);
            }
        };
        xmlHttp.send(form);
        
        return false;
    }
};

//-------------------------------------
//--- END OF NEWSLETTER SIGNUP CODE ---
//-------------------------------------

//------------------------------
//--- START OF CALENDAR CODE ---
//------------------------------

var PCal = {
    calDate: null,
    y: null,
    m: null,
    d: null,
    id1: null,
    id2: null,
    fmt: null,
    hiddenElms: null,
    show: function(id1, id2, fmt, evt)
    {
        if(PCal.show.arguments.length > 5)
        {
            var i;
            PCal.hiddenElms = new Array();
            for(i = 5; i < PCal.show.arguments.length; i ++)
            {
                PCal.hiddenElms[i - 5] = PCal.show.arguments[i];
                PContent.$(PCal.hiddenElms[i - 5]).style.visibility = "hidden";
            }
        }
        else
        {
            PCal.hiddenElms = null;
        }
        
        PCal.id1 = id1;
        PCal.id2 = id2;
        PCal.fmt = fmt;
        
        if(PContent.$(id1).value != "")
        {
            try
            {
                var dtParts;
                dtParts = PContent.$(id1).value.split("/");
                
                if(PCal.fmt == "yyyy/mm/dd")
                {
                    PCal.calDate = new Date(dtParts[0], dtParts[1] - 1, dtParts[2]);
                }
                else
                {
                    if(PCal.fmt == "yy/mm/dd")
                    {
                        PCal.calDate = new Date(2000 + Math.abs(dtParts[0]), dtParts[1] - 1, dtParts[2]);
                    }
                    else
                    {
                        if(PCal.fmt == "dd/mm/yy")
                        {
                            PCal.calDate = new Date(2000 + Math.abs(dtParts[2]), dtParts[1] - 1, dtParts[0]);
                        }
                        else
                        {
                            if(PCal.fmt == "dd/mm/yyyy")
                            {
                                PCal.calDate = new Date(dtParts[2], dtParts[1] - 1, dtParts[0]);
                            }
                            else
                            {
                                PCal.calDate = new Date();
                            }
                        }
                    }
                }
            }
            catch(e)
            {
                PCal.calDate = new Date();
            }
        }
        else
        {
            PCal.calDate = new Date();
        }

        PCal.y = PCal.calDate.getFullYear();
        PCal.m = PCal.calDate.getMonth();
        PCal.d = PCal.calDate.getDate();

        PCal.create();

        //Get the coordinates
        var cal = PContent.$("cal");
        var pageXY = PEvent.getEventElementPosition(evt);
        var elmDim = PEvent.getEventElementDimensions(evt);
        var calDim = PEvent.getElementDimensions(cal);

        cal.style.left = (pageXY[0] + elmDim[0] - calDim[0]) + "px";
        cal.style.top = (pageXY[1] + elmDim[1] + 3) + "px";
        cal.style.visibility = "visible";
        
        PContent.$(id1).blur();
    },
    create: function()
    {
	    var firstDay, firstWeekDay, monthLength;
	    var y = PCal.y;
	    var m = PCal.m;
	    var i , j;
	    var html;

	    //Create the month 'selected' array;
	    var monthSel = new Array();
	    for(i = 0; i < 12; i ++)
	    {
	        if(i == PCal.m)
	        {
	            monthSel[i] = " selected='selected'";
	        }
	        else
	        {
	            monthSel[i] = "";
	        }
	    }

	    html = "<table class='calendar' cellspacing='0' cellpadding='0' border='0' width='140' style='background-color:#777777;border:1px solid #CCCCCC;font-size:12px;'>";
	    html += "<tr><td width='84' style='padding-left:1px;'><select id='cal_month' class='select' style='width:80px;font-size:11px;margin:1px;' onchange='PCal.month();'>";
	    html += "<option value='0'" + monthSel[0] + ">January</option>";
	    html += "<option value='1'" + monthSel[1] + ">February</option>";
	    html += "<option value='2'" + monthSel[2] + ">March</option>";
	    html += "<option value='3'" + monthSel[3] + ">April</option>";
	    html += "<option value='4'" + monthSel[4] + ">May</option>";
	    html += "<option value='5'" + monthSel[5] + ">June</option>";
	    html += "<option value='6'" + monthSel[6] + ">July</option>";
	    html += "<option value='7'" + monthSel[7] + ">August</option>";
	    html += "<option value='8'" + monthSel[8] + ">September</option>";
	    html += "<option value='9'" + monthSel[9] + ">October</option>";
	    html += " <option value='10'" + monthSel[10] + ">November</option>";
	    html += "<option value='11'" + monthSel[11] + ">December</option>";
	    html += "</select>";
	    html += "</td><td width='54'>";
	    html += "<select id='cal_year' class='select' style='width:50px;font-size:11px;margin:1px;' onchange='PCal.year();'>";

	    var now = new Date();
	    for(i = now.getFullYear(); i <= now.getFullYear() + 5; i++)
	    {
	        if(i == PCal.y)
	        {
	            html += "<option value='" + i + "' selected='selected'>" + i + "</option>";
	        }
	        else
	        {
	            html += "<option value='" + i + "'>" + i + "</option>";
	        }
	    }
    				    
	    html += "</td></tr><tr><td id='calendar' colspan='2' style='padding-left:3px;'>";
	    html += "<table class='calendar' cellspacing='0' cellpadding='0' border='0' width='132' style='background-color:white;font-size:12px;'>";
	    html += "<tr align='center'>";
	    html += "<td><b>M</b></td>";
	    html += "<td><b>T</b></td>";
	    html += "<td><b>W</b></td>";
	    html += "<td><b>T</b></td>";
	    html += "<td><b>F</b></td>";
	    html += "<td><b>S</b></td>";
	    html += "<td><b>S</b></td>";	
	    html += "</tr><tr>";

	    firstDay = new Date(y, m, 1);
	    firstWeekDay = firstDay.getDay();
	    monthLength = PCal.getMonthLength(y, m);

	    if (firstWeekDay == 0)
	    {
		    for (j = 0; j < 6; j++)
		    {
			    html += "<td width=20>&nbsp;</td>"
		    }
	    }
	    else
	    {
		    for (j = 0; j < firstWeekDay - 1; j++)
		    {
			    html += "<td width=20>&nbsp;</td>"
		    }
	    }

	    for (j = 1; j < monthLength + 1; j++)
	    {
		    if ((j + firstWeekDay - 2) % 7 == 0)
		    {
			    html += "</tr><tr>";
		    }
		    
		    if(y == PCal.y && m == PCal.m && j == PCal.d)
		    {
			    html += "<td id=date_" + y + "_" + m + "_" + j + " width=20 style='border:1px solid #AAAAAA' align='center' onclick=PCal.day('" + y + "_" + m + "_" + j + "')>" + j + "</td>"
		    }
		    else
		    {
			    html += "<td id=date_" + y + "_" + m + "_" + j + " width=20 style='border:1px solid white' align='center' onclick=PCal.day('" + y + "_" + m + "_" + j + "')>" + j + "</td>"
		    }
	    }
	    
	    html += "</tr>";
	    html += "</table>";
	    html += "</td></tr>";
	    html += "<tr><td colspan='2' align='right' style='padding:1px 2px 2px 0px;'><input type='button' class='button' value='Cancel' onclick='PCal.hide();' /></td></tr>";
	    html += "</table>";
    	
	    PContent.$("cal").innerHTML = html;

	    if(PCal.getMonthLength(PCal.y, PCal.m) < PCal.d)
	    {
		    PCal.d = PCal.getMonthLength(PCal.y, PCal.m);
	    }

	    PContent.$("date_" + PCal.y + "_" + PCal.m + "_" + PCal.d).style.border = "1px solid green";
    },
    year: function()
    {
        PCal.y = PContent.$("cal_year").value;
        PCal.create();
    },
    month: function()
    {
        PCal.m = PContent.$("cal_month").value;
        PCal.create();
    },
    day: function(dt)
    {
	    PCal.y = dt.substr(0, 4);
	    PCal.m = dt.substr(5, 2).replace("_", "");
	    PCal.d = dt.substr(dt.lastIndexOf("_") + 1);

	    PCal.submit();
    },
    getMonthLength: function(y, m)
    {
	    if (m == 0 | m == 2 | m == 4 | m == 6 | m == 7 | m == 9 | m == 11)
	    {
		    return(31);
	    }
	    else
	    {
		    if (m == 3 | m == 5 | m == 8 | m == 10)
		    {
			    return(30);
		    }
		    else
		    {
			    if (m == 1)
			    {
				    if (y % 4 == 0)
				    {
					    return(29);
				    }
				    else
				    {
					    return(28);
				    }
			    }		
		    }
	    }
    },
    submit: function()
    {
	    var dt, year, month, day;
    	
	    if(PCal.y.toString().length < 3)
	    {
	        year = 2000 + Math.abs(PCal.y);
	    }
	    else
	    {
	        year = PCal.y.toString();
	    }
    	
	    month = Math.abs(PCal.m) + 1;
	    if(month.toString().length == 1)
	    {
	        month = "0" + month;
        }
        
        if(PCal.d.toString().length == 1)
        {
            day = "0" + PCal.d;
	    }
	    else
	    {
	        day = PCal.d;
	    }
    	
	    dt = PCal.fmt;
	    dt = dt.replace("dd", day);
	    dt = dt.replace("mm", month);
    	
	    if(PCal.fmt.indexOf("yyyy") != -1)
	    {
	        dt = dt.replace("yyyy", year);
	    }
	    else
	    {
	        dt = dt.replace("yy", year.substring(2));
	    }
    	
	    PContent.$(PCal.id1).value = dt;
    	
	    if (PContent.$(PCal.id1).fireEvent) // IE 5.5(WIN)
        {
            PContent.$(PCal.id1).fireEvent("onchange");
        }
        else // Mozilla, Safari...
        {
            var evt = document.createEvent("HTMLEvents");
            evt.initEvent("change", true, true);
            PContent.$(PCal.id1).dispatchEvent(evt);
        }

	    PContent.$(PCal.id1).style.borderColor = "";

        if(PCal.id2 != null)
        {
            PContent.$(PCal.id2).value = dt;
            PContent.$(PCal.id2).style.borderColor = "";
        }
        
        PContent.$("cal").style.visibility = "hidden";
        PCal.showHiddenElms();
        
        PContent.$(PCal.id1).focus();
    },
    hide: function()
    {
	    PContent.$("cal").style.visibility = "hidden";
	    PCal.showHiddenElms();
    },
    showHiddenElms: function()
    {
        if(PCal.hiddenElms != null)
        {
            var i;
            for(i = 0; i < PCal.hiddenElms.length; i ++)
            {
                PContent.$(PCal.hiddenElms[i]).style.visibility = "visible";
            }
            
            PCal.hiddenElms = null;
        }
    }
};

//----------------------------
//--- END OF CALENDAR CODE ---
//----------------------------

//-----------------------------
//--- START OF NICEDIT CODE ---
//-----------------------------

var NicEdit = {
    editor: null,
    editorIds: null,
    create: function()
    {
        NicEdit.remove();
        
        NicEdit.editor = new nicEditor({ buttonList: ['bold', 'italic', 'image' , 'underline', 'left', 'center', 'right', 'justify', 'ol', 'ul', 'fontSize', 'fontFamily', 'fontFormat', 'indent', 'outdent', 'forecolor', 'bgcolor', 'link', 'unlink', 'subscript', 'superscript', 'strikethrough', 'removeformat', 'xhtml'] });
        NicEdit.editorIds = new Array();
        
        var txts = PContent.$("content").getElementsByTagName("TEXTAREA");
        var i;
        
        for(i = 0; i < txts.length; i++)
        {
            if(txts[i].className != "noeditor")
            {
                NicEdit.editor.panelInstance(txts[i].name);
                NicEdit.editorIds[NicEdit.editorIds.length] = txts[i].name;
            }
        }
    },
    createInstance: function(name)
    {
        NicEdit.editor.panelInstance(name, {hasPanel : true});
        NicEdit.editorIds[NicEdit.editorIds.length] = name;
    },
    remove: function()
    {
        if(NicEdit.editor)
        {
            var i;
            for(i = 0; i < NicEdit.editorIds.length; i++)
            {
                NicEdit.editor.removeInstance(NicEdit.editorIds[i]);
            }
            
            NicEdit.editorIds = null;          
            NicEdit.editor = null;
        }
    }
};

//---------------------------
//--- END OF NICEDIT CODE ---
//---------------------------

//---------------------------
//--- START OF IMAGE CODE ---
//---------------------------

var PImage = {
    enlarge: function(src, alt)
    {
        var target = PContent.$("imgLarge");
        var img = new Image();
        img.src = src;
        
        if(PBrowser.isFF | PBrowser.isSafari)
        {
            img.onload = function(){
                if(img.width > 580 | img.height > 300)
                {
                    var x = img.width / 580;
                    var y = img.height / 300;
                    
                    if(x > y)
                    {
                        target.width = img.width / x;
                        target.height = img.height / x;
                    }
                    else
                    {
                        target.width = img.width / y;
                        target.height = img.height / y;
                    }
                }
                else
                {
                    target.width = img.width;
                    target.height = img.height;
                }
                
                target.src = img.src;
                target.setAttribute("alt", alt);
                target.setAttribute("title", alt);
            };
        }
        else
        {
            img.onreadystatechange = function(){
                if(img.readyState == "complete")
                {
                    if(img.width > 580 | img.height > 300)
                    {
                        var x = img.width / 580;
                        var y = img.height / 300;
                        
                        if(x > y)
                        {
                            target.width = img.width / x;
                            target.height = img.height / x;
                        }
                        else
                        {
                            target.width = img.width / y;
                            target.height = img.height / y;
                        }
                    }
                    else
                    {
                        target.width = img.width;
                        target.height = img.height;
                    }
                    
                    target.src = img.src;
                    target.setAttribute("alt", alt);
                    target.setAttribute("title", alt);
                }
            };
            
            if(img.readyState == "complete")
            {
                if(img.width > 580 | img.height > 300)
                {
                    var x = img.width / 580;
                    var y = img.height / 300;
                    
                    if(x > y)
                    {
                        target.width = img.width / x;
                        target.height = img.height / x;
                    }
                    else
                    {
                        target.width = img.width / y;
                        target.height = img.height / y;
                    }
                }
                else
                {
                    target.width = img.width;
                    target.height = img.height;
                }
                
                target.src = img.src;
                target.setAttribute("alt", alt);
                target.setAttribute("title", alt);
            }
        }
    }
};

//-------------------------
//--- END OF IMAGE CODE ---
//-------------------------

