﻿var isMozilla = (document.all) ? 0 : 1;
var isIE9 = (document.documentMode==9) ? 1 : 0;
var delay1000 = 1000;
//var regexRemEmptyArrValue = /(,){2,}/g;
var regexTrimCommaTrail = /^(,)+|(,)+$/g;
var defaultCountry = "India";
var defaultCountryID = 1;
var landingPage = "home.aspx";
var loginPage = "myaccount.aspx";
var currencySymbol = "Rs";
var cartView = ['Empty', 'Mini', 'Full'];
var cartType = [1, 2];
var cartAction = ['AddItem', 'UpdateItem', 'MoveItem', 'RemoveItem', 'EmptyCart', 'MergeCart', 'MergeOldItem', 'RemoveOldItem', 'GetMiniCart', 'GetFullCart'];
var cartLoader = new Array();
var siteLoader;
var yearCal;

function setDefaultFocus(objID) { document.getElementById(objID).focus(); }

function initSiteLoader(objLoader) { siteLoader = (objLoader != null) ? objLoader : document.getElementById('divGblLoader'); }

function initSiteSubLoaders() {
    cartLoader[cartType[0]] = document.getElementById('loadcart');
    cartLoader[cartType[1]] = document.getElementById('loadwishlist');
}

function getCartLoader(p_strTrack) { return cartLoader[p_strTrack]; }

function setDocTitle(strTitle) { document.title = strTitle + ((strTitle != '') ? " | " : "") + "Shroff Publishers & Distributors Pvt. Ltd."; }

function elementDisplay(element, disp) {
    try { element.style.display = disp; }
    catch (err) { }
}

function elementCSS(element, toCssClass, blnApply) { if (blnApply) { element.className = toCssClass; } }

function setElementDisplay(element, isDisplay) {
    if (element != null) {
        currClasses = element.className;
        if (currClasses != null) {
            currClasses = currClasses.replace('showdisplay', '');
            currClasses = currClasses.replace('hidedisplay', '');
            currClasses = currClasses.replace(/\s\s*$/, '');
        }
        else { currClasses = ''; }
        element.className = ((currClasses != '') ? (currClasses + ' ') : '') + ((isDisplay) ? '' : 'hidedisplay');
    }
}

function getElementDisplay(element) { return (element != null) ? ((element.className == null || element.className.indexOf('hidedisplay') == -1) ? true : false) : false; }

function elementSrc(element, toSrc, elementAlt) {
    element.src = toSrc;
    if (elementAlt != null) {
        element.alt = elementAlt;
        element.title = elementAlt;
    }
}

function setResizeDdl(ddlElement, ddlWidth) {
    ddlElement.onblur = function(oEvent) { ddlAutoResize(oEvent, ddlWidth); };
    ddlElement.onchange = function(oEvent) { ddlAutoResize(oEvent, ddlWidth); };
}

function ddlAutoResize(oEvent, oWidth) {
    oEvent = oEvent || window.event;
    var oTarget = oEvent.target || oEvent.srcElement;
    var oEventType = oEvent.type;
    if (oEventType == 'mousedown') {
        oTarget.style.width = 'auto';
    }
    else if (oEventType in { 'blur': '', 'change': '' }) {
        oTarget.style.width = oWidth + 'px';
    }
}

function resetElementArray(p_arrElem, p_arrValue) {
    for (var ElemCnt = 0; ElemCnt < p_arrElem.length; ElemCnt++) {
        p_arrElem[ElemCnt].value = (p_arrValue != null && p_arrValue[ElemCnt] != null) ? p_arrValue[ElemCnt] : '';
    }
}

function resetElement(p_Elem, p_Value) { p_Elem.value = (p_Value != null) ? p_Value : ''; }

function txaLenLimiter(p_objTxa, p_intUpperLimit) {
    if (p_objTxa.value.length > p_intUpperLimit) { p_objTxa.value = strInputTxt.substring(0, p_intUpperLimit); }
}

function clearLinebreaks(p_Elem) {
    if (p_Elem.value.indexOf('\r\n') > -1) { p_Elem.value = p_Elem.value.replace(/\r\n/g, ' '); }
}

function clearDates(oEvent) {
    if (!oEvent) { oEvent = window.event; } //check for the proper location of the event object
    var iKeyCode = oEvent.keyCode;
    if (iKeyCode == 8 || iKeyCode == 46) {
        var oTarget = oEvent.target || oEvent.srcElement;
        resetElement(oTarget);
    }
    return false;
}

function onCalendarShown(sender, args) {
    yearCal = sender;
    //Setting  default mode to month
    yearCal._switchMode("years", true);          //Attach click event
    if (yearCal._yearsBody) {
        var calRow;
        for (var i = 0; i < yearCal._yearsBody.rows.length; i++) {
            calRow = yearCal._yearsBody.rows[i];
            for (var j = 0; j < calRow.cells.length; j++) {
                Sys.UI.DomEvent.addHandler(calRow.cells[j].firstChild, "click", change);
            }
        }
    }
}

function onCalendarHidden(sender, args) {
    yearCal = sender;
    //Remove click event from every Month
    if (yearCal._yearsBody) {
        var calRow;
        for (var i = 0; i < yearCal._yearsBody.rows.length; i++) {
            calRow = yearCal._yearsBody.rows[i];
            for (var j = 0; j < calRow.cells.length; j++) {
                Sys.UI.DomEvent.removeHandler(calRow.cells[j].firstChild);
            }
        }
    }
}

function change(eventElement) {
    var target = eventElement.target;
    switch (target.mode) {
        case "year":
            //yearCal._visibleDate = target.date;
            yearCal.set_selectedDate(target.date);
            //yearCal._switchMonth(target.date);
            yearCal._blur.post(true);
            yearCal.raiseDateSelectionChanged();
            break;
    }
}

function deduplicateArray(p_arrObj) { return p_arrObj.sort().join(',,').replace(/(,|^)([^,]+)(,,\2)+(,|$)/g, '$1$2$4').replace(/,,+/g, ',').replace(/,$/, '').split(','); }

function removeCSVItem(p_strCSV, p_strItem) { return (',' + p_strCSV + ',').replace(',' + p_strItem + ',', ',').replace(regexTrimCommaTrail, ''); }

function formatCurrency(p_currencyValue) { return ((Math.round((p_currencyValue) * 100) / 100).toFixed(2)); }

function roundOff(p_currencyValue) { return Math.round(p_currencyValue); }

function bankersRoundOff(p_currencyValue) {
    var absolute = Math.abs(p_currencyValue);
    var sign = (p_currencyValue == 0) ? 0 : (p_currencyValue < 0 ? -1 : 1);
    var floored = Math.floor(absolute);
    if (absolute - floored != 0.5) { return Math.round(absolute) * sign; }
    else if (floored % 2 == 1) { return Math.ceil(absolute) * sign; } // Closest even is up.
    else { return floored * sign; } // Closest even is down.
}

function naviTabs(currElem, selectedElemID, toCssClass) {
    if (currElem.id != selectedElemID) { elementCSS(currElem, toCssClass, true); }
}

function highlightTitle(selectedTD, mouseEvent) {
    mouseEvent = mouseEvent || window.event;
    if (mouseEvent.type == "mouseover") {
        //selectedTD.className = 'curvedBox';
        //selectedTD.childNodes[1].className = 'innerContent';
    }
    else if (mouseEvent.type == "mouseout") {
        //selectedTD.className = 'curvedBoxNone';
        //selectedTD.childNodes[1].className = 'innerContent';
    }
}

function ExpandCollapse(objContainerID, imgStoreID, imgCollapse, imgExpand) {
    if (document.getElementById(objContainerID).childNodes[isIE9 + isMozilla].childNodes[isIE9 + isMozilla].clientHeight == 0) {
        document.getElementById(objContainerID).childNodes[isIE9 + isMozilla].childNodes[isIE9 + isMozilla].style.height = document.getElementById(objContainerID).childNodes[isIE9 + isMozilla].childNodes[isIE9 + isMozilla].childNodes[1 + isIE9 + isMozilla].clientHeight + 2 + 'px';
        elementSrc(document.getElementById(imgStoreID), 'images/' + imgExpand);
        document.getElementById(objContainerID).visibility = 'visible';
        //setElementDisplay(document.getElementById(objContainerID), true);
    }
    else if (document.getElementById(objContainerID).childNodes[isIE9 + isMozilla].childNodes[isIE9 + isMozilla].clientHeight > 0) {
        //setElementDisplay(document.getElementById(objContainerID), false);
        document.getElementById(objContainerID).childNodes[isIE9 + isMozilla].childNodes[isIE9 + isMozilla].style.height = 0 + 'px';
        document.getElementById(objContainerID).visibility = 'hidden';
        elementSrc(document.getElementById(imgStoreID), 'images/' + imgCollapse);
    }
}

function ViewDetail(activeTabID, currTab, activeCssClass, inactiveCssClass) {
    if (currTab.id != activeTabID) {
        document.getElementById('hfPageView').value = currTab.id;
        naviTabs(currTab, activeTabID, activeCssClass);
        naviTabs(document.getElementById(activeTabID), currTab.id, inactiveCssClass);
        setElementDisplay(document.getElementById('tdDesc'), ((currTab.id == 'tdDescTab') ? true : false));
        setElementDisplay(document.getElementById('tdAuthor'), ((currTab.id == 'tdAuthorTab') ? true : false));
        setElementDisplay(document.getElementById('tdReview'), ((currTab.id == 'tdReviewTab') ? true : false));
    }
}
function getStoreNode(c_name) {
    var i, x, y, ARRcookies = document.cookie.split(";");
    for (i = 0; i < ARRcookies.length; i++) {
        x = ARRcookies[i].substr(0, ARRcookies[i].indexOf("="));
        y = ARRcookies[i].substr(ARRcookies[i].indexOf("=") + 1);
        x = x.replace(/^\s+|\s+$/g, "");
        if (x == c_name) {
            return unescape(y);
        }
    }
}
function selectStoreNode(p_objSelectedNode) {
    debugger;
    var exdate = new Date();
    exdate.setDate(exdate.getDate() + exdays);
    var c_value = escape(value) + ((exdays == null) ? "" : "; expires=" + exdate.toUTCString());
    document.cookie = "SSN=" + p_objSelectedNode.parentNode.id;
//    var nodes = new Array();
//    var nodeVal = new Array();
//    nodes.push('track', 'storenode');
//    nodeVal.push('storenode', p_strStoreNode);
//    MasterCallbackPreProcessing(xmlGenerator(addXMLParentNodeArrayInput(new Array('DocumentElement', 'Element'), xmlNodeGeneratorArryInput(nodes, nodeVal))));
//    window.setTimeout(function() { clientRedirect(p_strNodeValue); }, 1);
//    return false;
}

function reloadChildDdl(p_parentDdl, p_childDdl, p_childSubLoader) {
    var returnValue = false;
    if (p_parentDdl != null && p_parentDdl.value > 0) {
        setElementDisplay(p_childSubLoader, true);
        returnValue = true;
    }
    else if (p_parentDdl != null && p_parentDdl.value == 0) {
        if (p_childDdl != null) {
            p_childDdl.length = 1;
        }
    }
    return returnValue;
}

function AddRemoveItem(p_strTrack, p_strCartType, p_strCartView, p_intProduct, p_intUnitPack, p_intQty, p_intCartItem) {
    var nodes = new Array();
    var nodeVal = new Array();
    p_intProduct = ((p_intProduct == null) ? 0 : p_intProduct);
    p_intUnitPack = ((p_intUnitPack == null) ? 0 : p_intUnitPack);
    p_intQty = ((p_intQty == null) ? 1 : p_intQty);
    p_intCartItem = ((p_intCartItem == null) ? 0 : p_intCartItem);
    nodes.push('track', 'carttype', 'product', 'pack', 'quantity', 'cartitem');
    nodeVal.push(p_strTrack, p_strCartType, p_intProduct, p_intUnitPack, p_intQty, p_intCartItem);
    if (p_strCartView == cartView[1]) {
        MasterCallbackPreProcessing(xmlGenerator(addXMLParentNodeArrayInput(new Array('DocumentElement', 'Element'), xmlNodeGeneratorArryInput(nodes, nodeVal))), getCartLoader(p_strCartType));
    }
    else if (p_strCartView == cartView[2]) {
        ChildCallbackPreProcessing(xmlGenerator(addXMLParentNodeArrayInput(new Array('DocumentElement', 'Element'), xmlNodeGeneratorArryInput(nodes, nodeVal))), getCartLoader(p_strCartType));
    }
}

//Function to check and uncheck the checkbox
function SetCheckUnCheck(parentNode, childNodes, p_strCheckValLst) {
    if (parentNode.value == 'parent') {
        for (var i = 0; i < childNodes.length; i++) {
            if (p_strCheckValLst != null) { p_strCheckValLst = removeCSVItem(p_strCheckValLst, childNodes[i].value); }
            childNodes[i].checked = parentNode.checked;
            if (parentNode.checked && p_strCheckValLst != null) { p_strCheckValLst += ',' + childNodes[i].value; }
        }
    }
    else if (parentNode.value != 'parent') {
        if (p_strCheckValLst != null) { p_strCheckValLst = removeCSVItem(p_strCheckValLst, parentNode.value); }
        if (parentNode.checked && p_strCheckValLst != null) { p_strCheckValLst += ',' + parentNode.value; }
        childNodes[0].checked = false;
    }
    return p_strCheckValLst.replace(regexTrimCommaTrail, '');
}

function setAddressLabel(p_arrAddrHfCtrls) {
    var arrAddress = new Array();
    if (p_arrAddrHfCtrls[0].value.replace(/\s/g, '') != '') {
        arrAddress.push(p_arrAddrHfCtrls[0].value);
        arrAddress.push(' ');
    }
    if (p_arrAddrHfCtrls[1].value.replace(/\s/g, '') != '') {
        arrAddress.push(p_arrAddrHfCtrls[1].value);
        arrAddress.push(' ');
    }
    if (p_arrAddrHfCtrls[2].value.replace(/\s/g, '') != '') {
        arrAddress.push(p_arrAddrHfCtrls[2].value);
    }
    arrAddress.push('<br/>');
    if (p_arrAddrHfCtrls[3].value.replace(/\s/g, '') != '') {
        arrAddress.push(p_arrAddrHfCtrls[3].value);
        arrAddress.push('<br/>');
    }
    if (p_arrAddrHfCtrls[4].value.replace(/\s/g, '') != '') {
        arrAddress.push(p_arrAddrHfCtrls[4].value);
        arrAddress.push('<br/>');
    }
    if (p_arrAddrHfCtrls[5].value.replace(/\s/g, '') != '') {
        arrAddress.push(p_arrAddrHfCtrls[5].value);
        arrAddress.push('<br/>');
    }
    if (p_arrAddrHfCtrls[6].value.replace(/\s/g, '') != '') {
        arrAddress.push('Landmark: ');
        arrAddress.push(p_arrAddrHfCtrls[6].value);
        arrAddress.push('<br/>');
    }
    if (p_arrAddrHfCtrls[7].value.replace(/\s/g, '') != '') {
        arrAddress.push(p_arrAddrHfCtrls[7].value);
    }
    if (p_arrAddrHfCtrls[8].value.replace(/\s/g, '') != '') {
        if (p_arrAddrHfCtrls[7].value.replace(/\s/g, '') != '') {
            arrAddress.push(' ');
        }
        arrAddress.push(p_arrAddrHfCtrls[8].value);
    }
    if (p_arrAddrHfCtrls[7].value.replace(/\s/g, '') != '' || p_arrAddrHfCtrls[8].value.replace(/\s/g, '') != '') {
        arrAddress.push('<br/>');
    }
    if (p_arrAddrHfCtrls[9].value.replace(/\s/g, '') != '') {
        arrAddress.push(p_arrAddrHfCtrls[9].value);
        arrAddress.push('. ');
    }
    if (p_arrAddrHfCtrls[10].value.replace(/\s/g, '') != '') {
        arrAddress.push(p_arrAddrHfCtrls[10].value);
    }
    arrAddress.push('<br/>');
    if (p_arrAddrHfCtrls[11].value.replace(/\s/g, '') != '') {
        arrAddress.push(p_arrAddrHfCtrls[11].value);
    }
    if (p_arrAddrHfCtrls[11].value.replace(/\s/g, '') != '' && p_arrAddrHfCtrls[12].value.replace(/\s/g, '') != '') {
        arrAddress.push(' / ');
    }
    if (p_arrAddrHfCtrls[12].value.replace(/\s/g, '') != '') {
        arrAddress.push(p_arrAddrHfCtrls[12].value);
    }
    if ((p_arrAddrHfCtrls[11].value.replace(/\s/g, '') != '' || p_arrAddrHfCtrls[12].value.replace(/\s/g, '') != '') && (p_arrAddrHfCtrls[13].value.replace(/\s/g, '') != '')) {
        arrAddress.push('<br/>');
    }
    if (p_arrAddrHfCtrls[13].value.replace(/\s/g, '') != '') {
        arrAddress.push(p_arrAddrHfCtrls[13].value);
    }
    p_arrAddrHfCtrls[14].innerHTML = arrAddress.join('');
}

function pageReload() {
    if (document.referrer &&
        !(document.referrer.substring(document.referrer.lastIndexOf('/') + 1, document.referrer.indexOf('.')) in
        { 'about': '', 'advanced': '', 'contact': '', 'disclaimer': '', 'err': '', 'faqs': '', 'forgotpassword': '' })) {
        redirectPrevURL();
    }
}

function openROWindow(p_strURL, p_strWinName) {
    return window.open(p_strURL, p_strWinName, 'menubar=no,scrollbars=yes,width=798,height=598,directories=no,location=no,resizable=yes,status=no,toolbar=no');
}

function funcRecall(p_openWinFunc) {
    try { p_openWinFunc(); }
    catch (exp) { setTimeout(p_openWinFunc, delay1000); }
}

function callWinOpener(p_fnOpener) {
    if (!window.opener.closed) {
        try { eval('window.opener.' + p_fnOpener); }
        catch (err) { }
    }
}

function redirectPrevURL() { (document.referrer && document.referrer != '') ? window.location.href = document.referrer : landingPage; }

//generic,v,l,p,generic
function clientPostBack(loc, elm, val) {    // (page_name, postback_element, element_value)
    var currParam = window.location.search.substring(1);
    var regex = new RegExp("v=([^&#]*)");
    var v = (elm == 'view') ? val : ((regex.exec(currParam) != null) ? regex.exec(currParam)[1] : '0');
    regex = new RegExp("l=([^&#]*)");
    var l = (elm == 'len') ? val : ((regex.exec(currParam) != null) ? regex.exec(currParam)[1] : '0');
    regex = new RegExp("p=([^&#]*)");
    var p = '1'; //(regex.exec(currParam) != null) ? regex.exec(currParam)[1] : '1';
    if (loc == 'specials' && (regex.exec(currParam) != null)) {
        regex = new RegExp("special=([^&#]*)");
        window.location.href = 'specials.aspx?special=' + regex.exec(currParam)[1] + '&v=' + v + '&l=' + l + '&p=' + p;
    }
    else if (loc == 'search' && (regex.exec(currParam) != null)) {
        regex = new RegExp("q=([^&#]*)");
        var qry = regex.exec(currParam)[1];
        //regex = new RegExp("srchCat=([^&#]*)");
        //var srchCat = (regex.exec(currParam) != null) ? regex.exec(currParam)[1] : '0';
        window.location.href = 'search.aspx?q=' + qry + '&v=' + v + '&l=' + l + '&p=' + p;
    }
    else if (loc == 'listing') {
        regex = new RegExp("cat=([^&#]*)");
        var cat = (regex.exec(currParam) != null) ? regex.exec(currParam)[1] : '0';
        window.location.href = 'listing.aspx?cat=' + cat + '&v=' + v + '&l=' + l + '&p=' + p;
    }
    else if (loc == 'orderlist') { window.location.href = 'myorder.aspx?l=' + l + '&p=' + p; }
    else { window.location.href = landingPage; }
}

function clientRedirect(strURL) {
    if (isMozilla) { window.location.href = strURL; }
    else {
        var pseudoLink = document.createElement("a");
        pseudoLink.href = strURL;
        document.body.appendChild(pseudoLink);
        pseudoLink.click(); // click() method defined in IE only
    }
}
