﻿var openedWindow = null;

function testCookies() {
    document.cookie = "testcookie=1";
    return (document.cookie.indexOf("testcookie=1") != -1) ? true : false
}

function createNavForm(params) {
    var form = document.getElementById("_formNav");
    if (!form) {
        form = document.createElement("form");
        form.id = "_formNav";
        form.method = "POST";
        document.body.appendChild(form);
    } else {
        form.innerHTML = "";
        form.target = "_self";
        form.action = "";
    }
    for (paramName in params) {
        if (typeof (params[paramName]) != "undefined") {
            var input = document.createElement("input");
            input.name = paramName;
            input.value = params[paramName];
            input.type = "hidden";
            form.appendChild(input);
        }
    }
    return form;
}

function open_url(url) {
    if (url == '')
        return;
    var arrURL = url.split('?');
    if (arrURL.length > 1) {
        var param, params=new Object();
        var arrParams = arrURL[1].split("&");
        for (var i = 0; i < arrParams.length; i++) {
            param = arrParams[i].split("=");
            if (param.length > 2)
                params[param[0]] = param.splice(1).join("=");
            else if (param.length > 1)
                params[param[0]] = param[1];
            else
                params[param[0]] = "";
        }
        openPage(arrURL[0], params);
    } else {
        openPage(arrURL[0]);
    }
}

function open_page(strParams, strTarget)/*This function is depricated. Use openPage instead*/
{

    var params;
    if (strParams != '') {
        var paramPair, paramPairs;
        params = new Object();
        paramPairs = strParams.split('|**|');
        for (var i = 0; i < paramPairs.length; i++) {
            paramPair = paramPairs[i].split('=');
            params[paramPair[0]] = paramPair[1];
        }
    }
    openPage(strTarget, params);
}

function openPage(query, postParams, target) {
    if (typeof (postParams) == "undefined") {
        window.location.assign(query);
    } else {
        var form = createNavForm(postParams);
        form.action = query;
        if (typeof (target) != "undefined") form.target = target;
        form.submit();
    }
}

// Getting the formatted currency string value
// input=string/number output=formatted string 
function my_format_currency(num, flag) {
    var my_number = 0.0, strNumber, i;
    var decimal_places = $eSRO.decimalPlaces;
    my_number = parseFloat(num);
    strNumber = my_number.toString(10);

    if (strNumber.indexOf('.') > 0) {
        var mPlace, mLen, mCount;
        mPlace = strNumber.indexOf('.');
        mLen = strNumber.length;
        mCount = mLen - mPlace - 1;
        if (mCount < decimal_places) {
            for (i = mCount; i < decimal_places; i++)
                strNumber += '0';
        } else if (mCount > decimal_places)
            if (typeof (flag) == 'undefined') {
            strNumber = round(num).toString(10);
            strNumber = my_format_currency(strNumber, true)
        } else
            strNumber = strNumber.substring(0, strNumber.indexOf('.') + decimal_places)

        strNumber = strNumber.replace('.', $eSRO.decimalSeparator);
    }
    else {
        if (decimal_places > 0) {
            strNumber += $eSRO.decimalSeparator;
            for (i = 0; i < decimal_places; i++)
                strNumber += '0';
        }
    }

    return strNumber;

}
//eXtended function for parsing float numbers from strings with comma as a decimal separator
function parseFloatX(str) {
    return parseFloat(str.toString().replace($eSRO.decimalSeparator, '.'));
}

function formatCurrency(amount, currencySign) {
    if (typeof (currencySign) == "undefined")
        currencySign = $eSRO.defaultCurrencySign;
    return currencySign + my_format_currency(amount);
}

function round(num) {
    var dec = Math.pow(10, $eSRO.decimalPlaces);
    return Math.round(num * dec) / dec;
}

function open_popup(strParams, strTarget, mTop, mLeft, mWidth, mHeight) {
    var params, frmPP;

    if (strTarget == '')
        return;

    if (openedWindow != null) {
        try {
            openedWindow.close();
        }
        catch (e) {
            openedWindow = null;
        }
    }

    params = "top=" + mTop + ",left=" + mLeft + ",height=" + mHeight + ",width=" + mWidth + ",status=no,toolbar=no,menubar=no,location=no,center=1"
    var args=new Object();
    if (typeof (strParams) == "string") {
        arrParams = strParams.split('|**|');
        var arg;
        for (var i = 0; i < arrParams.length; i++) {
            arg = arrParams[i].split("=");
            args[arg[0]] = arg[1];
        }
        if (strParams != '')
            args['H'] = mHeight;
    } else {
        args = strParams;
    } 
    
    frmPP = createNavForm(args);
    frmPP.action = strTarget;
    
    try {
        if (window.parent.name == 'eSRO_Opened') {
            openedWindow = window.open('', 'eSRO_Opened_1', params);
            frmPP.target = 'eSRO_Opened_1';

        }
        else {
            openedWindow = window.open('', 'eSRO_Opened', params);
            frmPP.target = 'eSRO_Opened';
        }
    }
    catch (e) {
        openedWindow = window.open('', 'eSRO_Opened', params);
        frmPP.target = 'eSRO_Opened';
    }
    frmPP.submit();
}
function addEventHandler(target, handler, type, IEtype) {
    if (target.attachEvent) {
        if (typeof (IEtype) != 'undefined') type = IEtype;
        target.attachEvent(type, handler)
    } else if (target.addEventListener) {
        target.addEventListener(type, handler, false);
    } else
        return false;
    return true;
}


function makeXMLHttpObj() {
    var xmlHttp = null;
    if (window.XMLHttpRequest) { // If IE7, Mozilla, Safari, and so on: Use native object 
        xmlHttp = new XMLHttpRequest();
    } else {
        if (window.ActiveXObject) { // ...otherwise, use the ActiveX control for IE5.x and IE6 
            var ARR_ACTIVEX = ["MSXML2.XMLHttp.5.0",
                    "MSXML2.XMLHttp.4.0",
                    "MSXML2.XMLHttp.3.0",
                    "MSXML2.XMLHttp",
                    "Microsoft.XMLHttp"]
            var bFound = false;
            for (i = 0; i < ARR_ACTIVEX.length && !bFound; i++) {
                try {
                    xmlHttp = new ActiveXObject(ARR_ACTIVEX[i]);
                    bFound = true;
                }
                catch (e) {
                }
            }
        }
    }
    return xmlHttp;
}
function trimString(str) {
    return str.replace(/^\s*/, "").replace(/\s*$/, "");
}

function invalidateField(fieldToInvalidate) //TODO: move to details_forms_functions
{
    if (fieldToInvalidate.type.toLowerCase() == "text") {
        fieldToInvalidate.style.backgroundColor = "#fdff73";
    }
}

function validateField(fieldToValidate) //TODO: move to details_forms_functions
{
    if (fieldToValidate.type.toLowerCase() == "text") {
        fieldToValidate.style.backgroundColor = "";
    }
}

var $debug = {
    log: function(logStr) {
        window.console && window.console.log(logStr);
    },
    info: (typeof($debugInfo) != "undefined" ? $debugInfo : undefined)
}
   
    