﻿var cmdurl = "/customer/handlers/CommandHandler.ashx";

function AddAlbum(name)
{
    //var success = false;
    var response = "";
    if (escape(name.replace(" ", "")).replace("&nbsp;", "").length > 0)
    {
        var queryString = "cmd=addAlbum&type=ajax&name=" + escape(name) + "&url=/customer/Upload.aspx";

        //if (XMLHttpRequest)
        //{
            // supports XMLHttpRequest, edit in place
            //queryString += "&type=ajax";
            //success = DoXMLHttpRequest(queryString, false);
            response = DoXMLHttpRequest_WithResponse(queryString);
            //alert(response);

            if (response.length > 0)
            {
                document.gotoupload.id.value = response;
                document.gotoupload.submit();
            }
        //}
        //else 
        //{
            // does not support XMLHttpRequest, use standard post-back
        //    M2pixPostBack(queryString);
        //}
        //M2pixPostBack("cmd=addAlbum&name=" + escape(name) + "&url=/customer/Upload.aspx");
    }
    else
        alert("Please enter an Album name");
        
    return response;
}

function RenameAlbum(albumId, name)
{
    var success = false;
    if(name.length > 0)
    {
        var queryString = "cmd=renameAlbum&albumId=" + albumId + "&newName=" + escape(name);
        
        //if(XMLHttpRequest)
        //{
            // supports XMLHttpRequest, edit in place
            queryString += "&type=ajax";
            success = DoXMLHttpRequest(queryString, false);
//        }
//        else
//        {
//            // does not support XMLHttpRequest, use standard post-back
//            M2pixPostBack(queryString);
//        }
    }
    
    return success;
}

function DeleteAlbums(albumList, url)
{
    //M2pixPostBack("cmd=deleteAlbums&id=" + escape(albumList) + "&url=" + escape(url));
    var success = false;
    if (albumList.length > 0)
    {
        var queryString = "cmd=deleteAlbums&id=" + escape(albumList) + "&url=" + escape(url);

        //if (XMLHttpRequest)
        //{
            // supports XMLHttpRequest, edit in place
            queryString += "&type=ajax";
            success = DoXMLHttpRequest(queryString, false);
//        }
//        else
//        {
//            // does not support XMLHttpRequest, use standard post-back
//            M2pixPostBack(queryString);
//        }
    }

    return success;
}

function CombineAlbums(albumList, url)
{
    //M2pixPostBack("cmd=combineAlbums&id=" + escape(albumList) + "&url=" + escape(url));
    var success = false;
    if (albumList.length > 0)
    {
        var queryString = "cmd=combineAlbums&id=" + escape(albumList) + "&url=" + escape(url);

        //if (XMLHttpRequest)
        //{
            // supports XMLHttpRequest, edit in place
            queryString += "&type=ajax";
            success = DoXMLHttpRequest(queryString, false);
//        }
//        else
//        {
//            // does not support XMLHttpRequest, use standard post-back
//            M2pixPostBack(queryString);
//        }
    }

    return success;
}

//----------------------------------------------------------------------------
// image functions
function RenameImage(imageId, name)
{
    var success = false;
    var queryString = "cmd=renameImage&imageId=" + imageId + "&newName=" + escape(name);   // + "&url=" + escape(window.location.href);

    //if(XMLHttpRequest)
    //{
        // supports XMLHttpRequest, edit in place
        queryString += "&type=ajax";
        var success = DoXMLHttpRequest(queryString, false);
//    }
//    else
//    {
//        // does not support XMLHttpRequest, use standard post-back
//        //window.location.href += queryString
//        M2pixPostBack(queryString);
//    }
    
    return success;
}

//function DeleteImages(imageList)
//{
//    alert("1: " + window.location.href);
//    //DeleteImages(imageList, window.location.href);
//}

function DeleteImages(imageList, url)
{
    //M2pixPostBack("cmd=deleteImages&idList=" + escape(imageList) + "&url=" + escape(url));

    var success = false;
    if (imageList.length > 0)
    {
        var queryString = "cmd=deleteImages&idList=" + escape(imageList) + "&url=" + escape(url);

        //if (XMLHttpRequest) {
            // supports XMLHttpRequest, edit in place
            queryString += "&type=ajax";
            success = DoXMLHttpRequest(queryString, false);
//        }
//        else
//        {
//            // does not support XMLHttpRequest, use standard post-back
//            M2pixPostBack(queryString);
//        }
    }

    return success;
}

function MoveImages(albumId, imageList)
{
    //alert("cmd=moveImages&albumId=" + albumId + "&idList=" + escape(imageList) + "&url=" + escape(window.location.href));
    //M2pixPostBack("cmd=moveImages&albumId=" + albumId + "&idList=" + escape(imageList) + "&url=" + escape(window.location.href));

    var success = false;
    var queryString = "cmd=moveImages&albumId=" + albumId + "&idList=" + escape(imageList);   // + "&url=" + escape(window.location.href);

    //if (XMLHttpRequest) {
        // supports XMLHttpRequest, edit in place
        queryString += "&type=ajax";
        var success = DoXMLHttpRequest(queryString, false);
//    }
//    else {
//        // does not support XMLHttpRequest, use standard post-back
//        //window.location.href += queryString
//        M2pixPostBack(queryString);
//    }
}

function CopyImages(albumId, imageList)
{
    //M2pixPostBack("cmd=copyImages&albumId=" + albumId + "&idList=" + escape(imageList) + "&url=" + escape(window.location.href));

    var success = false;
    var queryString = "cmd=copyImages&albumId=" + albumId + "&idList=" + escape(imageList);   // + "&url=" + escape(window.location.href);

    //if (XMLHttpRequest)
    //{
        // supports XMLHttpRequest, edit in place
        queryString += "&type=ajax";
        var success = DoXMLHttpRequest(queryString, false);
//    }
//    else
//    {
//        // does not support XMLHttpRequest, use standard post-back
//        //window.location.href += queryString
//        M2pixPostBack(queryString);
//    }

    return success;
}

function SetCoverImage(albumId, coverImageId)
{
    var success = false;    
    var queryString = "cmd=setCoverImage&albumId=" + albumId + "&imageId=" + coverImageId + "&url=" + escape(window.location.href);
        
    //if(XMLHttpRequest)
    //{        
        // supports XMLHttpRequest, edit in place
        queryString += "&type=ajax";
        var success = DoXMLHttpRequest(queryString, false);
        
        if(success)
        {
            alert("Set Cover Image Successful");
        }
//    }
//    else
//    {
//        // does not support XMLHttpRequest, use standard post-back
//        //window.location.href += queryString
//        M2pixPostBack(queryString);
//    }
    return success;
}

function GetTinyCoverImageUrl(albumId)
{
    var ret = "";
    var reqStr = GetCoverReqStr(albumId);

    if(VerifyTimeout())
    {
        req = $.ajax({
            type: "GET",
            url: reqStr,
            async: false
        });
        
        var oDomDoc = req.responseXML;
        //alert(req.responseText);
        //document.getElementById("<%=coverImage.ClientID %>").src = oDomDoc.getElementsByTagName("TinyImageURL")[0].firstChild.nodeValue;
        ret = oDomDoc.getElementsByTagName("TinyImageURL")[0].firstChild.nodeValue;
    }
    
    return ret;
}

function GetCoverReqStr(albumId) 
{
    var reqStr = "/customer/handlers/MpixOperations.ashx?rand=" + Math.random() + "&cmd=getCover&aid=" + albumId;
    return reqStr;
}

       
function RotateImages(imageList, rotation, absolute, postBack)
{
    var success = false;
    var queryString = "cmd=rotateImages&idList=" + escape(imageList) + "&rotation=" + escape(rotation) + 
                      "&absolute=" + absolute + "&url=" + escape(window.location.href);
                      
    //if(XMLHttpRequest && !postBack)
    if(!postBack)
    {
        // supports XMLHttpRequest, edit in place
        queryString += "&type=ajax";
        var success = DoXMLHttpRequest(queryString, false);
        
        /*if(success)
        {
            alert("New Rotation Saved");
        }*/
    }
//    else
//    {
//        // does not support XMLHttpRequest, use standard post-back
//        //window.location.href += queryString
//        M2pixPostBack(queryString);
//    }
}

function RotateAlbums(albumList, rotation, postBack)
{
    var success = false;
    var queryString = "cmd=rotateAlbums&idList=" + escape(albumList) + "&rotation=" + escape(rotation) + "&url=" + escape(window.location.href);
    
    //if(XMLHttpRequest && !postBack)
    if(!postBack)
    {        
        // supports XMLHttpRequest, edit in place
        queryString += "&type=ajax";
        success = DoXMLHttpRequest(queryString, false);
        
        /*if(success)
        {
            alert("New Rotation Saved");
        }*/       
    }
//    else
//    {
//        // does not support XMLHttpRequest, use standard post-back
//        //window.location.href += queryString
//        M2pixPostBack(queryString);
//    }
}


/*function DeleteAddress(addressid)
{
    M2pixPostBack("cmd=DeleteAddress&addressid=" + addressid + "&url=" + escape(window.location.href + "?del=1"));
}

function SetDefaultAdd(addressid, addtype)
{
    M2pixPostBack("cmd=SetDefaultAddress&addressid=" + addressid + "&addtype=" + addtype + "&url=" + escape(window.location.href));
}*/

//----------------------------------------------------------------------------
// common

function SelectAll(id, startelem)
{
    try
    {
        var root = startelem != null ? document.getElementById(startelem) : document; //.forms[0];
        
        if(root)
        {
            var inputs = root.getElementsByTagName("input");
            // select the checked album (if any)
            for(i = 0; i < inputs.length; ++i)
            {
                elem = inputs[i];
                
                if(elem.type == "checkbox" || elem.type == "radio")
                {
                    if(elem.id.indexOf(id) > -1)
                    {
                        elem.checked = true;            
                    }
                }
            }
        }
    }
    catch(err){}
    
    return false;
}

function SelectNone(id, startelem)
{
    try
    {
        var root = startelem != null ? document.getElementById(startelem) : document.forms[0];
        
        if(root)
        {    
            var inputs = root.getElementsByTagName("input");
                
            // select the checked album (if any)
            for(i = 0; i < inputs.length; i++)
            {
                elem = inputs[i];
                
                if(elem.type == "checkbox" || elem.type == "radio")
                {
                    if(elem.id.indexOf(id) > -1)
                    {
                        elem.checked = false;
                    }
                }
            }
        }
    }
    catch(err){}
    
    return false;
}


/*function SelectAllToggle(id)
{
    var useBool = true;
    var firstchk = true;
    var i;
    
    // select the checked album (if any)
    for(i = 0; i < document.forms[0].elements.length; i++)
    {
        elem = document.forms[0].elements[i];
        
        if(elem.type == "checkbox" || elem.type == "radio")
        {
            if(elem.id.indexOf(id) > -1)
            {
                if(firstchk)
                {
                    useBool = elem.checked;
                    firstchk = false;
                }

                elem.checked = !useBool;
            }
        }           
    }
    
    return false;
}*/

function SelectAllToggle(id, startelem)
{
    var useBool = true;
    var firstchk = true;
    var i;
    
    var root = startelem != null ? document.getElementById(startelem) : document.forms[0];
    
    if(root)
    {
        var inputs = root.getElementsByTagName("input");
        
        // select the checked album (if any)
        for(i = 0; i < inputs.length; i++)
        {
            elem = inputs[i];
            
            if(elem.type == "checkbox" || elem.type == "radio")
            {
                if(elem.id.indexOf(id) > -1)
                {
                    if(firstchk)
                    {
                        useBool = elem.checked;
                        firstchk = false;
                    }

                    elem.checked = !useBool;
                }
            }          
        }
    }
    
    return false;
}

function ToggleCheckBox(id)
{
    var elem = document.getElementById(id);
    if(elem != null)
    {
        elem.checked = !elem.checked;        
    }
    
    return false;
}

function ToggleCheckBoxWithEvent(id, eventname)
{
    ToggleCheckBox(id);
    
    var elem = document.getElementById(id);
    
    if(elem != null)
    {
        var attr = elem.getAttribute(eventname);
        
        if(attr != null)
        {
            typeof attr == 'function' ? attr() : eval(attr);
        }
    }
    
    return false;
}

function SelectRadio(id)
{
    var elem = document.getElementById(id);
    if(elem != null)
    {
        if(!elem.checked)
        {
            elem.checked = true;
        }
    }
    
    return false;
}

function SelectRadioWithEvent(id, eventname)
{
    var elem = document.getElementById(id);
    
    if(elem != null)
    {
        if(!elem.checked)
        {
            elem.checked = true;
            var attr = elem.getAttribute(eventname);
            
            if(attr != null)
            {
                typeof attr == 'function' ? attr() : eval(attr);
            }
        }
    }
    
    return false;
}


function GetSelectedCheckboxes(checkBoxId)
{
    var selectedItems = "";
    //document.forms[0].elements
    var elems = document.getElementsByTagName("input");
    for(i = 0; i < elems.length; ++i)
    {
        elem = elems[i];
        
        if(elem.type == "checkbox" || elem.type == "radio")
        {
            if(elem.id.indexOf(checkBoxId) > -1 && elem.checked == true)
            {            
                var hidElem = elem.id + 'Val';
                if(document.getElementById(hidElem) != null)
                {
                    selectedItems += document.getElementById(hidElem).value + global_separator;
                }
                else
                {
                    selectedItems += elem.value + global_separator;
                }
            }
        }
    }
    // strip the last comma off the end
    selectedItems = selectedItems.substring(0, selectedItems.length - 1);
    return selectedItems;
}


function GetXSLTProc(xml, xsltDoc)
{
    // use the XSLT Document to create a XSLTProcessor() object via the importStyleSheet method
    var xsltProc = new XSLTProcessor();
    xsltProc.importStylesheet(xsltDoc);
    return xsltProc;
}




function opacity(id, opacStart, opacEnd, millisec) {
    //speed for each frame
    var speed = Math.round(millisec / 100);
    var timer = 0;
    var i;

    //determine the direction for the blending, if start and end are the same nothing happens
    if(opacStart > opacEnd) {
        for(i = opacStart; i >= opacEnd; i--) {
            setTimeout("changeOpac(" + i + ",'" + id + "')",(timer * speed));
            timer++;
        }
    } else if(opacStart < opacEnd) {
        for(i = opacStart; i <= opacEnd; i++)
            {
            setTimeout("changeOpac(" + i + ",'" + id + "')",(timer * speed));
            timer++;
        }
    }
}

//change the opacity for different browsers 
function changeOpac(opacity, id) {
    var object = document.getElementById(id).style;
    
    if(object.opacity != null)
        object.opacity = (opacity / 100);
    if(object.MozOpacity != null)
        object.MozOpacity = (opacity / 100);
    if(object.KhtmlOpacity != null)
        object.KhtmlOpacity = (opacity / 100);
    if(object.filter != null)
        object.filter = "alpha(opacity=" + opacity + ")";
}


function UpdateDropdown(appendkey, tagsource, dropdownid)
{
    var selectedItems = "";
    var elems = document.getElementsByTagName(tagsource);
    
    var ids = new Array();
    var values = new Array();
    
    var counter = 0;
    for(k = 0; k < elems.length; k++)
    {
        elem = elems[k];
        if(elem.id.indexOf(appendkey) > -1)
        {
            ids[counter] = elem.id;
            if(elem.textContent)
                values[counter] = elem.textContent;// elem.innerText;
            else if(elem.innerText)
                values[counter] = elem.innerText;
            else
                values[counter] = elem.childNodes.item(0).nodeValue;

            counter++;
        }
    }
    
    var dd = document.getElementById(dropdownid);
    
    if(dd.length > 0)
    {
        for(j = dd.options.length - 1; j >= 0; j--)
        {
            dd.remove(j);
        }
    }
    
    for(i = 0; i < ids.length; i++)
    {
        var y = document.createElement('option');        
        y.text = values[i];
        y.value = ids[i].replace(appendkey, '');
        
        try
        {
            dd.add(y,null); // standards compliant
        }
        catch(ex)
        {
            dd.add(y); // IE only
        }
    }
}


function DetermineAppendChar()
{
    var appendChar = "?";
    if(window.location.href.indexOf(appendChar) != -1)
    {
        appendChar = "&";
    }
    
    return appendChar;
}

/*function MpixPostBack(queryString)
{
    var loc = window.location.href + DetermineAppendChar() + queryString;
    if(window.location.replace)
        window.location.replace(loc);
    else
        window.location.href = loc;
}*/

function DoXMLHttpRequest(queryString, asynch)
{
    //var reqStr = window.location.href + DetermineAppendChar() + queryString + "&rand=" + Math.random();
    var reqStr = cmdurl + "?" + queryString + "&rand=" + Math.random();

    //var req = new XMLHttpRequest();
    VerifyTimeout();
    
    var item, retVal;
    
    if(asynch)
    {
        $.ajax({
            type: "GET",
            url: reqStr,
            complete: function(req) {

                item = req.responseXML.getElementsByTagName("retStatus");
                retVal = item[0].firstChild.nodeValue;

                if (retVal != "success") {
                    alert(retVal);
                }   
            }
        });
    }
    else
    {
        req = $.ajax({
            type: "GET",
            url: reqStr,
            async: false});
    }
        
    /*try
    {
        req.send(null);
    }
    catch (e) 
    {
        alert(e);
    }*/
    
    if(!asynch)
    {
        var item = req.responseXML.getElementsByTagName("retStatus");
        var retVal = item[0].firstChild.nodeValue;
            
        return (retVal == "success");
    }
}

function DoXMLHttpRequest_WithResponse(queryString)
{
    //var reqStr = window.location.href + DetermineAppendChar() + queryString + "&rand=" + Math.random();
    var reqStr = cmdurl + "?" + queryString + "&rand=" + Math.random();

    //var req = new XMLHttpRequest();

    VerifyTimeout();
    
    var item, retVal, retnode;

    try
    {
        var req = $.ajax({
            type: "GET",
            url: reqStr,
            async: false});

        item = req.responseXML.getElementsByTagName("retStatus");

        if (item[0].firstChild.nodeValue == "success")
        {
            retnode = req.responseXML.getElementsByTagName("retObject");
            if(retnode != null)
                retVal = retnode[0].firstChild.nodeValue;
        }
        else
        {
            alert(retVal);
        }
        
        //retnode = req.responseXML.getElementsByTagName("retObject")[0].firstChild.nodeValue;

        //alert(retobj);
        
    }
    catch (e) {
        alert(e);
    }

    return retVal;

}

function GetSortOrder(listID, sortOrderId)
{   
    var list = document.getElementById(listID);
    var items = list.getElementsByTagName("input");            
    var array = new Array();    
    for(var i = 0; i < items.length; i++)
    {        
        array.push(items[i].value);
    }
    var sortOrder = document.getElementById(sortOrderId);    
    sortOrder.value = array;
    
    // submit the form (poor-boy post back)
    //document.forms["aspnetForm"].submit();
}
function isEmail(string) 
{
    if (string.search(/^\w+((-\w+)|(\.\w+))*\@[A-Za-z0-9]+((\.|-)[A-Za-z0-9]+)*\.[A-Za-z0-9]+$/) != -1)
    {
        return true;
    }
    else
    {
        return false;
    }
}

function validEmail(sEmails)
{
    var email = sEmails.split(',');
    for(var i = 0; i<email.length; i++)
    //string_trim(email[i])
    {
        if(!isEmail(email[i]))
        {
            //alert('one or more email addresses entered are invalid');
            return false;
        }
        
    }
    return true;
}

function trim(strText) { 
    // this will get rid of leading comma 
    while (strText.substring(0,1) == ',') 
        strText = strText.substring(1, strText.length);

    // this will get rid of trailing comma 
    while (strText.substring(strText.length-1,strText.length) == ',')
        strText = strText.substring(0, strText.length-1);

   return strText;
}


/*var arraynum = -1;
var reqarray = new Array();*/

function GetXMLHttpRequest()
{
    var valid = VerifyTimeout();

    if(valid)
    {
        /*if(arraynum > 0)
            reqarray[arraynum - 1] = null;
            
        arraynum += 1;
        reqarray[arraynum] = new XMLHttpRequest();
        
        return reqarray[arraynum];*/

        //var newxml = new XMLHttpRequest();
        //return newxml;

        return $.ajax();
    }
    else
    {
        return null;
    }
        
}

function VerifyTimeout()
{
    var valid = false;
    var reqStr = "/customer/handlers/TimeoutHandler.ashx?ajax=true&rand=" + Math.random();
    //var req = new XMLHttpRequest();
    /*var req = new XMLHttpRequest();
    if(req) {
    req.open("GET", reqStr, false);
    //req.onreadystatechange = function() {
    //    if(req.readyState == 4) {
    //    //if(this.readyState == XMLHttpRequest.DONE) {
    //        alert(req.responseText);
    //        valid = CheckForTimeout(req);
    //    }
    //};
    req.send(null);
    //alert(req.responseText);
    valid = CheckForTimeout(req);
    }
    else {
    alert("Error: no XMLHttpRequest sent from GetXMLHttpRequest");
    }*/

    var req = $.ajax({
        type: "GET",
        url: reqStr,
        async: false
    });

    if (req)
        valid = CheckForTimeout(req);

    return valid;
}

function GetGenericContent(ctrlname, updateid, alwaysrefresh, extraqsvars)
{
    var reqStr = "/customer/controls/GenericDyn.aspx?rand=" + Math.random() + "&ctrlname=" + ctrlname;
    if (typeof (extraqsvars) != "undefined")
    {
        if(extraqsvars.length > 0)
            reqStr += "&" + extraqsvars;
    }
        
    if(VerifyTimeout())
    {
        var req = $.ajax({
            type: "GET",
            url: reqStr,
            async: false});
            
        var oDomDoc = req.responseXML;

        if (document.getElementById(updateid).innerHTML.length == 0 || alwaysrefresh == true)
        {
            document.getElementById(updateid).innerHTML = oDomDoc.getElementsByTagName("root")[0].firstChild.nodeValue;
        }

    }
    return false;
}

function incrQty(qtybox)
{
    if(document.getElementById)
    {
        var qbox = document.getElementById(qtybox);
        if(qbox.disabled != null && qbox.disabled == false)
        {
            var qboxval = qbox.value.replace(",","");
            
            if(qboxval == "")
            {
                qbox.value = 1;
            }
            else
            {
                //var m = re.exec(qboxval);
                //if (m == null)
                if(!IsNaturalNumber(qboxval))
                {
                   qbox.value = 1;
                }
                else
                {
                    var intval = parseInt(qboxval);
                    intval += 1;
                    qbox.value = intval;
                }
            }
        }
    }
    
    return false;
}


