/* 
 * This file contans common functions used between pages
 * There should be *NO* coupling to page parts ie DO NOT TRY TO REFERENCE ids on pages in the code as this will likely cause a break
 */

var ajxFetch = {
    ajaxUrl : "/search/hotels_search.php" //ajax page
}

var Url = {
	/*
	 * encode / decode url parameters
	 */
        // public method for url encoding
        encode : function (string) {
                return escape(this._utf8_encode(string));
        },

        // public method for url decoding
        decode : function (string) {
                return this._utf8_decode(unescape(string));
        },

        // private method for UTF-8 encoding
        _utf8_encode : function (string) {
                string = string.replace(/\r\n/g,"\n");
                var utftext = "";

                for (var n = 0; n < string.length; n++) {

                        var c = string.charCodeAt(n);

                        if (c < 128) {
                                utftext += String.fromCharCode(c);
                        }
                        else if((c > 127) && (c < 2048)) {
                                utftext += String.fromCharCode((c >> 6) | 192);
                                utftext += String.fromCharCode((c & 63) | 128);
                        }
                        else {
                                utftext += String.fromCharCode((c >> 12) | 224);
                                utftext += String.fromCharCode(((c >> 6) & 63) | 128);
                                utftext += String.fromCharCode((c & 63) | 128);
                        }

                }

                return utftext;
        },

        // private method for UTF-8 decoding
        _utf8_decode : function (utftext) {
                var string = "";
                var i = 0;
                var c = c1 = c2 = 0;

                while ( i < utftext.length ) {

                        c = utftext.charCodeAt(i);

                        if (c < 128) {
                                string += String.fromCharCode(c);
                                i++;
                        }
                        else if((c > 191) && (c < 224)) {
                                c2 = utftext.charCodeAt(i+1);
                                string += String.fromCharCode(((c & 31) << 6) | (c2 & 63));
                                i += 2;
                        }
                        else {
                                c2 = utftext.charCodeAt(i+1);
                                c3 = utftext.charCodeAt(i+2);
                                string += String.fromCharCode(((c & 15) << 12) | ((c2 & 63) << 6) | (c3 & 63));
                                i += 3;
                        }

                }

                return string;
        }

};

var htlGen = {
    logLocSearch : function(searchType, searchTerm,searchNumber,type){
    /**
     * Description:
     *  logs the search by a user
     * Author: JL Apr 10
     * @param String searchType - the type of search being performed
     * @param string searchNumber - the n th search of the user
     * @param string searchTerm - what the search actually is
     * @param string type - type of search
     * @return none
     */
    if(typeof(searchNumber)== 'undefined'){
        searchNumber = 'x';
    }

    var ajxUrl = ajxFetch.ajaxUrl + '?a=logSrch' + '&searchNum=' + searchNumber 
                    + '&searchTrm=' + Url.encode(searchTerm)
                    + '&type=' + type;

    $.ajax({
        url : ajxUrl,
        asynch : false,
        dataType : "json"
    })

}

}

