﻿function resizeFonts(relativeSize) {
    var isOk = 0;
    var cookieSize;
    cookieSize = parseInt(getCookie("RelativeFontSize"))

    if (isNaN(cookieSize)) {
        cookieSize = 0;
    }

    if (relativeSize < 0) {
        if (cookieSize > 0) {
            isOk = 1;
        }
    }

    if (relativeSize > 0) {
        if (cookieSize < 3) {
            isOk = 1;
        }
    }

    if (isOk == 1) {
        resizeFonts_main(relativeSize, 0);
    }
}

function resizeFonts_onLoad() {
    resizeFonts_main(getCookie("RelativeFontSize"), 1);
}

function resizeFonts_main(relativeSize, justPageLoad) {

    //Ask cookie if there already is a relative size
    relativeSize = parseInt(relativeSize);
    fontSizeFromCookie = parseInt(getCookie("RelativeFontSize"));

    if (isNaN(fontSizeFromCookie)) {
        fontSizeFromCookie = 0;
    }

    if (justPageLoad == 0) {
        setCookie("RelativeFontSize", (fontSizeFromCookie + parseInt(relativeSize)));
    }

    var IE = (navigator.appName == 'Microsoft Internet Explorer') ? true : false; //simple browser(IE) check 
    var coll;
    var oldSize;
    var newSize;
    var unit;
    var getBody;
    var getallTags;
    var times;

    getallTags = document.getElementsByTagName('*');

    if (relativeSize < 0) {
        times = relativeSize * -1;
        increment = -1;
    } else {
        times = relativeSize;
        increment = 1;
    }

    for (k = 0; k < getallTags.length; k++) {


        for (i = 0; i < times; i++) {
            if (IE) {
                oldSize = getallTags[k].currentStyle.fontSize;
                unit = oldSize.substring(oldSize.length - 2, oldSize.length);
                oldSize = oldSize.substring(0, oldSize.length - 2);
            }
            else {
                oldSize = window.getComputedStyle(getallTags[k], "").getPropertyValue("font-size");
                unit = oldSize.substring(oldSize.length - 2, oldSize.length);
                oldSize = oldSize.substring(0, oldSize.length - 2);
            }

            newSize = parseInt(oldSize) + increment;

            try {

                if (!isNaN(newSize) && unit != '+0' && getallTags[k].className != '') {
                    coll = coll + ',' + newSize;

                    getallTags[k].style.fontSize = newSize + unit;
                }
            }
            catch (err) {
                //Handle possible error here...
            }
        }
    }
}

function setCookie(cookieName, cookieValue) {
    var today = new Date();
    var expire = new Date();
    expire.setTime(today.getTime() + 3600000 * 24 * 1000);
    document.cookie = cookieName + "=" + escape(cookieValue) + "; path=/; expires=" + expire.toGMTString();
}

function getCookie(cookieName) {
    oCookie = document.cookie;
    var index = oCookie.indexOf(cookieName + "=");
    if (index == -1) return null;
    index = oCookie.indexOf("=", index) + 1;
    var endstr = oCookie.indexOf(";", index);
    if (endstr == -1) endstr = oCookie.length;
    return unescape(oCookie.substring(index, endstr));
}

function CheckSize(askee, countingfield, maxSize) {
    currentLength = askee.value.length;
    if (currentLength > maxSize) {
        askee.value = askee.value.substr(0, maxSize);
        remainingCharacters = 0;
    }
    else {
        remainingCharacters = maxSize - currentLength;
    }
    SmsSendertbRemChars.value = remainingCharacters;
}


var SSN_COL_DELIMITER = String.fromCharCode(16);
var SSN_ROW_DELIMITER = String.fromCharCode(15);

window.onload = __ssn_Page_OnLoad;

function __ssn_ClientAPIEnabled() {
    return typeof (ssn) != 'undefined';
}

function __ssn_Page_OnLoad() {
    if (__ssn_ClientAPIEnabled()) {
        var sLoadHandlers = ssn.getVar('__ssn_pageload');
        if (sLoadHandlers != null)
            eval(sLoadHandlers);
    }
}

function __ssn_KeyDown(iKeyCode, sFunc, e) {
    if (e == null)
        e = window.event;

    if (e.keyCode == iKeyCode) {
        eval(unescape(sFunc));
        return false;
    }
}

function __ssn_bodyscroll() {
    var oF = document.forms[0];
    if (__ssn_ClientAPIEnabled())
        oF.ScrollTop.value = ssn.dom.getByTagName("body")[0].scrollTop;
}

function __ssn_setScrollTop(iTop) {
    if (__ssn_ClientAPIEnabled())
        ssn.dom.getByTagName("body")[0].scrollTop = iTop;
}

//Focus logic
function __ssn_SetInitialFocus(sID) {
    var oCtl = ssn.dom.getById(sID);
    if (oCtl != null && __ssn_CanReceiveFocus(oCtl))
        oCtl.focus();
}

function __ssn_CanReceiveFocus(e) {
    //probably should call getComputedStyle for classes that cause item to be hidden
    if (e.style.display != 'none' && e.tabIndex > -1 && e.disabled == false && e.style.visible != 'hidden') {
        var eParent = e.parentElement;
        while (eParent != null && eParent.tagName != 'BODY') {
            if (eParent.style.display == 'none' || eParent.disabled || eParent.style.visible == 'hidden')
                return false;
            eParent = eParent.parentElement;
        }
        return true;
    }
    else
        return false;
}

// String wordWrap function
String.prototype.wordWrap = function (m, b, c) {
    var i, j, l, s, r;
    if (m < 1)
        return this;
    for (i = -1, l = (r = this.split("\n")).length; ++i < l; r[i] += s)
        for (s = r[i], r[i] = ""; s.length > m; r[i] += s.slice(0, j) + ((s = s.slice(j)).length ? b : ""))
            j = c == 2 || (j = s.slice(0, m + 1).match(/\S*(\s)?$/))[1] ? m : j.input.length - j[0].length
			|| c == 1 && m || j.input.length + (j = s.slice(m).match(/^\S*/)).input.length;
    return r.join("\n");
};


// JScript File

function Sansir_Search( value )
{
    if( value == null ) return;
    if( value == '' ) return;
    //var search = value;
    var search = encodeHex( value );
    //search = escape( value );
    //search = search.replace( /\+/gi, "%2B" );
    //search = search.replace(/\/gi, "%2F"); 
    window.location = '/default.aspx?ctl=Search&Search=' + search;
}

function Sansir_EventElement( e )
{
    var ev = (!e) ? window.event : e;
	if(ev.target) return ev.target;
	if(ev.srcElement) return ev.srcElement;
	if(ev.srcElement.nodeType == 3) return elem.parentNode;
    return null;
}


function Sansir_EventKeyCode( e )
{
    var ev = (!e) ? window.event : e;
    if (ev.keyCode) return ev.keyCode;
    if (ev.which) return ev.which;
    return 0;
}


function Sansir_SetProperties( obj, values )
{
    while( !values[values.length-1] )
    {
        values.length--;
    }
    for( var i = 0; i < values.length; i++)
    {
        obj[values[i][0]] = values[i][1];
    }
}

function Sansir_AddEventHandler(elem,eventName,handler)
{
    if(elem.attachEvent)
    {
        return elem.attachEvent("on"+eventName,handler);
    }
    else
    {
        if(elem.addEventListener)
        {
            elem.addEventListener(eventName,handler,false);
            return true;
        }
    }
    return false;
}

function Sansir_RemoveEventHandler(elem,eventName,handler)
{
    if(elem.detachEvent)
    {
        return elem.detachEvent("on"+eventName,handler);
    }
    else
    {
        if(elem.removeEventListener)
        {
            elem.removeEventListener(eventName,handler,false);
            return true;
        }
    }
    return false;    
}

function Sansir_CancelEvent(ev)
{
    if(document.all)
    {
        if(!ev)
        {
            ev=event;
        }
        ev.cancelBubble = true;
        ev.returnValue = false;
    }
    else
    {
        if(ev)
        {
            ev.preventDefault();
            ev.stopPropagation();
        }
    }
    return false;
}

function Sansir_IsDefined( obj, variable )
{
    try
    {
        return ( typeof( eval(obj)[variable] ) != 'undefined' );
    }
    catch( e )
    {
        return false;
    }
}

var digitArray = new Array('0','1','2','3','4','5','6','7','8','9','a','b','c','d','e','f');
function toHex(n){
    var result = ''
    var start = true;
    for (var i=32; i>0;){
        i-=4;
        var digit = (n>>i) & 0xf;
        if (!start || digit != 0){
            start = false;
            result += digitArray[digit];
        }
    }
    return (result==''?'0':result);
}

function pad(str, len, pad){
    var result = str;
    for (var i=str.length; i<len; i++){
        result = pad + result;
    }
    return result;
}

function encodeHex(str){
    var result = "";
    for (var i=0; i<str.length; i++){
        result += pad(toHex(str.charCodeAt(i)&0xff),2,'0');
    }
    return result;
}

function decodeHex(str){
    str = str.replace(new RegExp("s/[^0-9a-zA-Z]//g"));
    var result = "";
    var nextchar = "";
    for (var i=0; i<str.length; i++){
        nextchar += str.charAt(i);
        if (nextchar.length == 2){
            result += ntos(eval('0x'+nextchar));
            nextchar = "";
        }
    }
    return result;
}

function ssnLoginWindow(url) {
    $('body').append('<div id="ssnLoginWindowBg"></div><iframe id="ssnLoginWindow" frameBorder="0" scrolling="no" src="' + url + '"></iframe>');
}

function ssnLoginWindowClose() {
    $('#ssnLoginWindowBg, #ssnLoginWindow').remove();
}
