/*new overlay*/
var my_sfcPanel;
function generateSfcPanel(pid, header_title, body_content, pwidth,create_new_instance, fixedCenterVar, pheight, pzindex){
    if(typeof(create_new_instance) == 'undefined')
        create_new_instance = false;

    //if(typeof(my_sfcPanel) == 'undefined' || create_new_instance)
        my_sfcPanel = new sfcPanel(pid);
    
    if(fixedCenterVar == 'false')
        fixedCenterVar = false;
    else
        fixedCenterVar = true;

    if(pheight == 'undefined')
        pheight = null;

    if(pzindex == 'undefined')
        pzindex = null;

    my_sfcPanel.setProperties({
        width : pwidth,
        constraintoviewport : true,
        fixedcenter : Boolean(fixedCenterVar),
        underlay : "none", 
        visible : false, 
        draggable : false, 
        modal : true,        
        height: pheight,
        zindex: pzindex
    });

    my_sfcPanel.setHeader(header_title);
    my_sfcPanel.setBody(body_content);
    my_sfcPanel.show();
        
    var panel_id = pid+"_sfc_panel";
    YAHOO.util.Event.onContentReady(panel_id, function () {
        my_sfcPanel.center();
    });    
   
    return my_sfcPanel;    
}

function getImageOverlay(pid, header_title, image_path, panel_width, fixedCenter, panel_height){
    var content_body = '<div id="sfcpanel_container" style="position: relative;">'
                            + '<img src="'+image_path+'" alt="" style="border: 0px">'
                        +'</div>';
    var pw = parseInt(panel_width.substring(0,panel_width.lastIndexOf('px')));
    pw += 2; //need to add 2 pixels since the panel body has 1px border
    panel_width = pw+'px';

    generateSfcPanel(pid, header_title, content_body, panel_width, "",fixedCenter, panel_height);
}

function getPageOverlay(pid, header_title, url, panel_width, run_embedded_js, r_callback, create_new_instance){
    run_embedded_js = run_embedded_js || -1;
    
    var sUrl = url;
    
    var r_func = function(){};
    
    if(typeof(r_callback) != 'undefined')
        r_func = r_callback;
        
    if(typeof(create_new_instance) == 'undefined')
        create_new_instance = false;
        
    var callback = {
        success:function(o) {
            var content_body = '<div id="sfcpanel_container" style="position: relative;">'
                                    + o.responseText
                                +'</div>', panel; 

            panel = generateSfcPanel(pid, header_title, content_body, panel_width, create_new_instance);
            if (run_embedded_js > 0 || run_embedded_js == true) 
            {
                var sfcpanel = document.getElementById('sfcpanel_container');                
                if (sfcpanel) 
                {
                    var scripts = sfcpanel.getElementsByTagName('script');
                    for (var i=0; i < scripts.length; i++) {
                        try
                        {
                            eval(scripts[i].innerHTML);
                        }
                        catch(e) {}
                    };
                };
            };
            if(!create_new_instance)
                o.argument(panel);
        },
        failure:function(o) {
           var panel_width = "200px";
           var error_body = "<div style='height:50px;padding-top: 10px;'>"
                    +"<center><span class='overlay-content-darkgray-bold'>There was an error getting the content</span>"
                    +"</div>";
           generateSfcPanel(pid,'Error',error_body,panel_width);
        }, 
        argument: r_func
    };
    YAHOO.util.Connect.asyncRequest('GET', sUrl, callback);
}

function getPageOverlayIfr(pid, header_title, url, panel_width, ifr_width, ifr_height){
    var content_body = '<div id="sfcpanel_container" style="position: relative;">'
                            +'<iframe name="overlay_ifr" id="overlay_ifr" src="'+url+'" scrolling="no" style="width:'+ifr_width+';height:'+ifr_height+';overflow:hidden;background-color: rgb(255, 255, 255);" frameborder="0" ></iframe>'
                       +'</div>';
    generateSfcPanel(pid, header_title, content_body, panel_width);                       
}

function resizeIframeOverlay(wrapper_element_id, resize_width,resize_height){
    var content_height;
    var content_width;
    
    if(resize_height){
        if(YAHOO.env.ua.ie){
            content_height = YAHOO.util.Dom.get(wrapper_element_id,'height').offsetHeight;
        }else{
            content_height = parseInt(YAHOO.util.Dom.getStyle(wrapper_element_id,'height'));
        }
    }

    if(resize_width){
        if(YAHOO.env.ua.ie)
            content_width = YAHOO.util.Dom.get(wrapper_element_id,'width').offsetWidth;
        else
            content_width = parseInt(YAHOO.util.Dom.getStyle(wrapper_element_id,'width'));
    }    

    if(content_height){
        parent.YAHOO.util.Dom.setStyle('overlay_ifr','height',content_height+'px');        
    }if(content_width){
        parent.YAHOO.util.Dom.setStyle('overlay_ifr','width',content_width+'px');
        
        //we need to force the overlay width since it's set to specific dimension
        var ov_width = content_width; //it has 30px left/right padding
        parent.my_sfcPanel.setProperty('width',ov_width+'px',true);
        
        //recalculate overlay position
        // var xpos = parseInt((parseInt(parent.YAHOO.util.Dom.getViewportWidth()) / 2) - (ov_width / 2));
        // var ypos = 100;
        // var ov_pos = new Array(xpos,ypos);
        // parent.my_sfcPanel.setProperty('xy',ov_pos,true);
        parent.my_sfcPanel.center();
    }
}

function redirectParentTo(url){
    parent.window.location = url;
}

function redirectIframe(new_panel_header, url){
    parent.my_sfcPanel.setHeader(new_panel_header);
    parent.document.getElementById("overlay_ifr").src = url;            
}
/*end new overlay*/



function printPage()
{
        if (window.print)
        {
                window.print();
        }
}

/**
* a javascript collection object of all of the window popup options
*/
function popupOptions()
{
    this.height         = screen.availHeight / 2;
    this.width          = screen.availWidth / 2;
    this.top            = 0;
    this.left           = 0;
    this.toolbar        = false;
    this.location       = false;
    this.directories    = false;
    this.status         = false;
    this.menubar        = false;
    this.scrollbars     = false;
    this.resizable      = false;
    this.dependent      = false;

    this.build          = _buildOptions;
}

/**
* a private javascript method for popupOptions which is used
* to build a popup option string
*/
function _buildOptions()
{
    var sTemp = "";

    sTemp += "height=" + this.height + ",";
    sTemp += "width=" + this.width + ",";
    sTemp += "top=" + this.top + ",";
    sTemp += "left=" + this.left + ",";
    sTemp += "scrollbars=" + ((this.scrollbars) ? "yes" : "no") + ",";
    sTemp += "toolbar=" + ((this.toolbar) ? "yes" : "no") + ",";
    sTemp += "location=" + ((this.location) ? "yes" : "no") + ",";
    sTemp += "directories=" + ((this.directories) ? "yes" : "no") + ",";
    sTemp += "status=" + ((this.status) ? "yes" : "no") + ",";
    sTemp += "menubar=" + ((this.menubar) ? "yes" : "no") + ",";
    sTemp += "resizable=" + ((this.resizable) ? "yes" : "no") + ",";
    sTemp += "dependent=" + ((this.dependent) ? "yes" : "no");

    return(sTemp);
}

// used to track different window popups
var aWin = new Array();

/**
* creates a popup window
*
* @param string window url
* @param string window name
* @param string [optional] window width
* @param string [optional] window height
* @param boolean [optional] whether window is scrollable or not
* @param boolean [optional] whether window has a toolbar or not
* @param boolean [optional] whether window is resizable or not
*/
function popup(winlink, winname)
{
    var winwidth        = (arguments.length >= 3) ? arguments[2] : screen.availWidth / 2;
    var winheight   = (arguments.length >= 4) ? arguments[3] : screen.availHeight / 2;
    var winscroll   = (arguments.length >= 5) ? ((arguments[4] == '1') ? true : false) : false;
    var wintoolbar  = (arguments.length >= 6) ? ((arguments[5] == '1') ? true : false) : false;
    var winresize   = (arguments.length >= 7) ? ((arguments[6] == '1') ? true : false) : true;
    //Liz Ng 3.23.2004:
    var winmenubar      = (arguments.length >= 8) ? ((arguments[7] == '1') ? true : false) : false;

    var oOption = new popupOptions();

    oOption.width               = winwidth;
    oOption.height              = winheight;
    oOption.scrollbars  = winscroll;
    oOption.toolbar             = wintoolbar;
    oOption.resizable   = winresize;
    //Liz Ng 3.23.2004:
    oOption.menubar             = winmenubar;

    // these values are hard coded
    oOption.top                 = ((screen.availHeight / 2) - (winheight / 2));
    oOption.left                = ((screen.availWidth / 2) - (winwidth / 2));
    oOption.location    = false;
    oOption.directories = false;
    oOption.status              = false;
    oOption.dependent   = false;

    var sOptions = oOption.build();

    window.open(winlink, winname, sOptions);
    // oWin.focus();
}

function showQuickview (thumb) {
        divs=thumb.getElementsByTagName('div');
        divs[0].style.display="block";
}

function hideQuickview (thumb) {
        divs=thumb.getElementsByTagName('div');
        divs[0].style.display="none";
}

function swap_text(id, text, style, on_style)
{
    e = document.getElementById(id);
    e.className = on_style;
    if (e.value == '' || e.value == text) {
        e.value = '';
    };
    e.onblur = new Function("e = document.getElementById('"+id+"');if (e.value == '') {e.className = '"+style+"';e.value='"+text+"'}");
}



//for ie6
function hide_selects()
{
    els = document.getElementsByTagName('select');
    for (i in els) {
        if (els[i].style) {
            els[i].style.visibility = "hidden";
        }
    }
}

function show_selects()
{
    els = document.getElementsByTagName('select');
    for (i in els) {
        if (els[i].style) {
            els[i].style.visibility = "visible";
        }
    }
}


//      + These functions show the sizecharts on customer service section
//              might be used in other parts of the site as well.

var sizecharts_panel;
function show_sizecharts(category_url) {

    switch(category_url){
        case "tops":
            category_url = '01_tops';
        break;
        case "pants":
            category_url = '02_pants';
        break;
        case "denim":
            category_url = '03_denim';
        break;
        case  "skirts-dresses":
            category_url = '04_skirts_dresses';
        break;
        case "suits":
            category_url = '05_suits';
        break;
        case "jackets-outerwear":
            category_url = '06_jackets_outwear';
        break;
        case "shoes-tights":
            category_url = '07_shoes_tights';
        break;
        case undefined:
        case null:
        case '':
            category_url = '01_tops';
        break;
    }
    
    //if (typeof sizecharts_panel != "undefined") { sizecharts_panel.show(); return;}
    var xpos = parseInt((parseInt(YAHOO.util.Dom.getViewportWidth()) / 2) - (732 / 2));
    var ypos = 1;

    sizecharts_panel = new YAHOO.widget.Panel("sizecharts_p", {
        close:false,
        visible:false,
        draggable:false,
        modal:true,
        zIndex:1500,
        xy:[xpos,ypos],
        //fixedcenter: true,
        underlay:"none"
    });

    switch_sizecharts(category_url);
    hide_selects();
    sizecharts_panel.render(document.body);
    sizecharts_panel.show();
}

function recall_sizecharts(schrt_id) {
    //alert ("schrt_id = "+schrt_id);
    sizecharts_panel.destroy();
    show_sizecharts(schrt_id);
}

//      + switch_sizecharts(schrt_id)
//      params: schrt_id        //  contains the name of the image for the size chart in
                                                // /images/customer_service/categories_sizecharts/
function switch_sizecharts(schrt_id) {
        var width = 728;
        var height = 806;
        var coords = '0,703,725,807';
        switch(schrt_id){
            case '02_pants':
            case '03_denim':
                height = 698;
                coords = '0,596,728,697';
            break;
            case  '04_skirts_dresses':
                height = 774;
                coords = '0,673,728,774';
            break;
            case '05_suits':
                height = 821;
                coords = '0,717,728,819';
            break;
            case '06_jackets_outwear':
                height = 679;
                coords = '0,576,728,677';
            break;
            case '07_shoes_tights':
                    height = 532;
                    coords = '0,430,728,530';
            break;           
        }

        var sizecharts_body = '<img src="/images/redesign2010/customer_service/categories_sizecharts/'+
                schrt_id +'.jpg" width="'+width+'" height="'+height+'" border="0" usemap="#linksmap" id="sizecharts_p" />' +
                 '<map name="linksmap" id="linksmap">' +
                                '<area shape="rect" coords="710,13,722,26"   href="javascript:show_selects();sizecharts_panel.hide();" />' + 
                                '<area shape="rect" coords="33,105,82,129"   href="javascript:recall_sizecharts(\'01_tops\');" />' +
                                '<area shape="rect" coords="85,105,134,129"  href="javascript:recall_sizecharts(\'02_pants\');" />' +
                                '<area shape="rect" coords="137,105,191,129" href="javascript:recall_sizecharts(\'03_denim\');" />' +
                                '<area shape="rect" coords="194,105,298,129" href="javascript:recall_sizecharts(\'04_skirts_dresses\');" />' +
                                '<area shape="rect" coords="301,105,350,129" href="javascript:recall_sizecharts(\'05_suits\');" />' +
                                '<area shape="rect" coords="353,105,490,129" href="javascript:recall_sizecharts(\'06_jackets_outwear\');" />' +
                                '<area shape="rect" coords="493,105,606,129" href="javascript:recall_sizecharts(\'07_shoes_tights\');" />' +
                                '<area shape="rect" coords="'+coords+'" href="http://www.eloquii.com/" target="_blank" />' +
                 '</map>';
    sizecharts_panel.setBody(sizecharts_body);
    sizecharts_panel.render(document.body);
    sizecharts_panel.show();

    var underlay = document.getElementById('sizecharts_p_mask');
    if (underlay) YAHOO.util.Event.addListener(underlay, "click", function(){show_selects();sizecharts_panel.hide();});
    return false;
}


//the following functions are used to send item details in subcategories, fashin and favorites

function showSendFavorites() {
    var inputs = YAHOO.util.Dom.getElementsByClassName('thumb');
    var checked_items = new Array();
    var itemId = "";
    var colorId = "";
    var itemQueue = new Array();
    var colorQueue = new Array();
    for (var i = 0; i < inputs.length; i++) {
        itemId = "" + inputs[i].firstChild.src.match(/\d+_/);
        colorId = "" + inputs[i].firstChild.src.match(/_\d+/);
        itemQueue[itemQueue.length] = itemId.replace("_", "");
        colorQueue[colorQueue.length] = colorId.replace("_", "");
    };

    if(itemQueue.length > 0){
        var callback = {
            success: function(o) {
                send_details = new YAHOO.widget.Panel("send_details", {
                            width:"514px",
                            x: (document.documentElement.clientWidth - 514)/2,
                            y: 145,
                            close:false,
                            zindex:101,
                            visible:false,
                            draggable:false,
                            modal:true,
                            underlay: 'none'
                });

                send_details.setBody(o.responseText);

                send_details.render(document.body);
                if (typeof quickViewPanel != 'undefined') {
                    quickViewPanel.hide();
                };
                hide_selects();
                scroll(0,0);
                send_details.show();
            },
            failure: function (o) {}
        };

        YAHOO.util.Connect.asyncRequest(
           'POST',
           '/detail/sendDetailsToFriend/',
           callback,
           'item=' + itemQueue + '&color=' + colorQueue
        );
    }
}


//  +   validate_email_adresses
//      checks input for valid email adress(es) match
//      returns boolean, true if adresses are correct
//      +
function validate_email_adresses(email_adress){
    //  single email match expression...
    var email_1_regexp =  /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
    //  multiple, separated by commas email adresses list
    var email_n_regexp = /^(((\s)*(\,){1}(\s)*){1}([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+)+$/;
    //  adding a comma at the beginning simplfies the multiple addresses expression a lot...
    return String(","+email_adress).search (email_n_regexp) != -1;
}

function SendDetails() {
    var item_id = document.getElementById('send_item_id').value;
    var color_id = document.getElementById('send_color_id').value;
    var from_name = document.getElementById('from_name').value;
    var from_mail = document.getElementById('from_mail').value;
    var to_mail = document.getElementById('to_mail').value;
    var message_content = document.getElementById('message').value;

    if (!from_mail || !to_mail || !from_name){
        alert("Please fill in all the fields marked with *");
        return;
    }

    if (!validate_email_adresses(to_mail)){
        alert("Please enter valid e-mail address(es).");
        return;
    }
    if (!validate_email_adresses(from_mail)){
        alert("Please enter a valid e-mail address.");
        return;
    }

    var postData = 'item=' + item_id
                + '&color=' + color_id
                + '&from_name=' + from_name
                + '&from_mail=' + from_mail
                + '&to_mail=' + to_mail
                + '&message_content=' + message_content;

    var sUrl = "/send/details";

    var callback = {
        success:function(o) {
            hide_selects();
            scroll(0,0);
            send_details.setBody(o.responseText);
        },
        failure:function(o) {
            alert("Your mail couldn't be sent");
        }
    };

    YAHOO.util.Connect.asyncRequest('POST', sUrl, callback, postData);
}

function prepareSearch(){
    var txt = document.getElementById('search_kw');
    var kws = txt.alt;
    var input = txt.value;
    if(input == 'Search again' || input == '')
        input = kws;
    return true;
}

function hideSendDetails() {
    if(document.getElementById('subscribe'))
        document.getElementById('subscribe').checked = false;
    show_selects();
    send_details.hide();
}

//Function to show the terms & conditions for virtual & plastic GC
var termsconds_panel;
function show_termsconds() {

    termsconds_panel = new YAHOO.widget.Panel("termscond_p", {
        close:false,
        visible:false,
        draggable:false,
        modal:true,
        zIndex:500,
        xy:[300,69],
        underlay:"none"
    });

    var width =  680;
    var height = 645;
    var close_coords = "660,2,677,19";
    var link='<area shape="rect" coords="373,605,441,618"   href="/customer-service/returns/policy" onclick="javascript:termsconds_panel.hide();" />';
    var gc_id ='gc_terms_cond.jpg';
    
    var termscond_body = '<img src="/images/details/gift_cards/'+gc_id +'" width="'+width+'" height="'+height+'" border="0" usemap="#linksmap" id="termscond_p"/>'+
                 '<map name="linksmap" id="linksmap">' +
                        '<area shape="rect" coords="'+close_coords+'"   href="javascript:close_termsconds();" />' +link+
                 '</map>';

    termsconds_panel.setBody(termscond_body);
    termsconds_panel.render(document.body);
    termsconds_panel.show();

    var underlay = document.getElementById('termscond_p_mask');
    if (underlay) YAHOO.util.Event.addListener(underlay, "click", function(){show_selects();close_termsconds();});
    
    //hide denomination select to avoid ie6 issue
    document.getElementById('size_select_0').style.visibility='hidden';
    
    // ie6 hack
    var iframe = buildIframe('termscond_p');
  
    termsconds_panel.hideEvent.subscribe(function(){
        iframe.style.display = "none";
    });
  
    var updatePos = function  () {
        iframe.style.left = (parseInt(YAHOO.util.Dom.getX('termscond_p'), 10)-2) + 'px';
        iframe.style.top  = YAHOO.util.Dom.getY('termscond_p') + 'px';
    };
    termsconds_panel.moveEvent.subscribe(updatePos);

    return false;
}
function close_termsconds(){
    termsconds_panel.hide();
    document.getElementById('size_select_0').style.visibility='visible';
}

// An ie6 hack
function buildIframe(panel_name) {
    var iframe = document.createElement('iframe');
    iframe.style.border     = "medium none";//medium none
    iframe.style.margin     = "0pt";
    iframe.style.padding    = "0pt";
    iframe.style.opacity    = "0";
    iframe.style.filter     = "alpha(opacity=0)";
    iframe.style.position   = "absolute";
    iframe.style.display    = "block";
    iframe.style.width      = document.getElementById(panel_name).offsetWidth + 'px';
    iframe.style.height     = document.getElementById(panel_name).offsetHeight + 'px';
    iframe.style.zIndex     = "100";
    iframe.id               = "hack";
    iframe.style.left       = (parseInt(YAHOO.util.Dom.getX(panel_name), 10)-2) + 'px';
    iframe.style.top        = YAHOO.util.Dom.getY(panel_name) + 'px';
    document.body.appendChild(iframe);

    return iframe;
}

function trackInputFocus(input) {
    if(input.value == "enter your order number") input.value = "";
}

function maxchars(obj,e,max) {
    key = (document.all) ? e.keyCode : e.which;
    if(obj.value.length >= max && key != 8)
        return false;
    return true;
}

function redirectTo (url) 
{
    if (window.location.href.match(/_dev.php/))
    {
        window.location = '/frontend_dev.php' + url;
    }
    else
    {
        window.location = url;
    }
}
// to open an outfit, don't worry about dependencies; the script will load the 
// js and css.
var MultiItemGlobalHooks =
{
    loadedCss : false, 

    showGroup: function(name)
    {
        MultiItemGlobalHooks.loadDependencies();
        
        YAHOO.util.Event.onDOMReady(function()
        {
            getPageOverlay('get_this_look', 'get this look', '/success/' + encodeURI(name),'756px', true);
            MultiItem.showingGroupName = name;
        });
    },
    
    loadDependencies: function()
    {
        if (!MultiItemGlobalHooks.loadedCss) 
        {
            var linkTag = document.createElement('link');
            YAHOO.util.Dom.setAttribute(linkTag, 'rel', 'stylesheet');
            YAHOO.util.Dom.setAttribute(linkTag, 'type', 'text/css');
            YAHOO.util.Dom.setAttribute(linkTag, 'href', '/css/item_groups.css');
            document.body.appendChild(linkTag);
            
            MultiItemGlobalHooks.loadedCss = true;
        }
        
        if (typeof MultiItem == 'undefined') 
        {
            var scriptTag = document.createElement('script');
            YAHOO.util.Dom.setAttribute(scriptTag, 'src', '/js/MultiItem.js');
            document.body.appendChild(scriptTag);
        }
        
        if (typeof SkuSelection == 'undefined') 
        {
            var scriptTagCatalog = document.createElement('script');
            YAHOO.util.Dom.setAttribute(scriptTagCatalog, 'src', '/js/catalog.js');
            document.body.appendChild(scriptTagCatalog);
        }
    }
};

// open signup overlay when using #signup in the url
YAHOO.util.Event.onDOMReady(function(){
    if (location.hash == '#signup') 
    {
        getPageOverlay('emailsignup_panel', 'the limited e-mail sign up','/main/emailsignup','345px');
    }
});
