﻿var Url = {

    // 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;
    }

}



// preset variables for unable to move message
var cX = 0; var cY = 0; var rX = 0; var rY = 0;
function UpdateCursorPosition(e) { cX = e.pageX; cY = e.pageY; }
function UpdateCursorPositionDocAll(e) { cX = event.clientX; cY = event.clientY; }
if (document.all) { document.onmousemove = UpdateCursorPositionDocAll; }
else { document.onmousemove = UpdateCursorPosition; }


//this function places the unable to move message neer the cursor
function AssignPosition(d) {
    if (self.pageYOffset) {
        rX = self.pageXOffset;
        rY = self.pageYOffset;
    }
    else if (document.documentElement && document.documentElement.scrollTop) {
        rX = document.documentElement.scrollLeft;
        rY = document.documentElement.scrollTop;
    }
    else if (document.body) {
        rX = document.body.scrollLeft;
        rY = document.body.scrollTop;
    }
    if (document.all) {
        cX += rX;
        cY += rY;
    }
    d.style.left = (cX + 10) + "px";
    d.style.top = (cY + 10) + "px";
}


//updater to aid ajax writing to db
function updatetracker(Element, data) {
    //document.getElementById('iPortalCore_' + Element).value = data;
    if (Element == 'Wgrow') {
        UpdateUser('', '', '', '', '', '', '', data, '');
    }
    if (Element == 'Wshrink') {
        UpdateUser('', '', '', '', '', '', data, '', '');
    }
    if (Element == 'deleter') {
        UpdateUser('', '', '', '', '', data, '', '', '');
    }
    
   // document.getElementById("iPortalCore_reloadpanel").click()
}

//handles the navigation expanding and contracting
function handlenav(nav) {
    var expiredate = new Date();
    expiredate.setMonth(expiredate.getMonth() + 6);
    updatetracker("iPortalCore_MainNav", nav);

}

//handles the feautured panel expanding and contracting
function handlefeatured(featured) {
    var expiredate = new Date();
    expiredate.setMonth(expiredate.getMonth() + 6);
    updatetracker("iPortalCore_Featured", featured);

}



function UpdateUser(widgetdata,featured,region,postcode,mainnav,deleter,shrink,grow,completestring) {
    var updateurl = "./?updateiportal=true&widgetdata=" + widgetdata + "&featured=" + featured + "&region=" + region + "&postcode=" + postcode + "&mainnav=" + mainnav + "&deleter=" + deleter + "&shrink=" + shrink + "&grow=" + grow + "&completestring=" + Url.encode(completestring);
    xmlHttp = new XMLHttpRequest();
    //xmlHttp.onreadystatechange = ProcessRequest;
    xmlHttp.open("GET", updateurl, true); xmlHttp.send(null); 
   }



    
    
    
    
 
