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 toggle_recent () {
    var b = document.getElementById('list_recent_items');
    var oldHeight = b.style.height;
    var dir = oldHeight == "0px" ? "up" : "down";
    if(dir == "down"){
        if(document.getElementById('size_select_0'))
            document.getElementById('size_select_0').style.display = "";
        if(document.getElementById('qty_select_0'))
            document.getElementById('qty_select_0').style.display = "";
    }
    blindRecent(dir);
    var r=document.getElementById('recent_items');
    var arrows = r.getElementsByTagName('IMG');
    var arrow = null;
    var dirArrow = oldHeight == "0px" ? "down" : "up";
    for(var i = 0; i < arrows.length; i++){
        arrow = arrows[i];
        arrow.src = "/images/fltrArrow"+dirArrow.substr(0,1).toUpperCase()+dirArrow.substr(1)+".gif";
    }
}

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+"'}");
}

function blindRecent(dir){
    var obj = document.getElementById('list_recent_items');
    var targetHeight = obj.getElementsByTagName('TABLE')[0].offsetHeight;
    var r=document.getElementById('recent_items');
    var h = parseInt(obj.style.height);
    var inc = dir == 'up' ? 20 : -20;

    if((dir == 'up' && parseInt(obj.style.height) < targetHeight)||
       (dir == 'down' && parseInt(obj.style.height) > 0)){
        h =  h + inc;

        if(h > targetHeight){
            h = targetHeight;
            if(document.getElementById('size_select_0'))
                document.getElementById('size_select_0').style.display = "none";
            if(document.getElementById('qty_select_0'))
                document.getElementById('qty_select_0').style.display = "none";
        }
        if(h < 0){
            h = 0;
        }

        obj.style.height = h+'px';
        obj.style.marginTop = '-'+obj.offsetHeight+'px'
        r.style.margin = (-26-obj.offsetHeight)+"px 0px "+obj.offsetHeight+"px";
        setTimeout("blindRecent('"+dir+"')",1);
    }
}

function updateRecent(){
    var callback = {
        success: function(o) {
            var responses = o.responseText.split('<SPLIT>');
            var count = parseInt(responses[0].replace(/^\n*/,''));
            var win_recent = document.getElementById('recent_items_header');
            if(count > 0){
                var counter = document.getElementById('counter_recent_items');
                if (counter) counter.innerHTML = count;
                var recent = document.getElementById('list_recent_items');
                if (recent) recent.innerHTML = responses[1];
                if(!recent)
                    createRecentObj();
            }
            if (win_recent) win_recent.style.visibility = count > 0 ? 'visible' : 'hidden';
        },
        failure: function (o) {
            
        }
    }
    YAHOO.util.Connect.asyncRequest('POST',"/main/updaterecent",callback,'');
}

var recent = null;
function createRecentObj(){
    recent = new YAHOO.widget.Panel("recent_items",
    {
        constrainttoviewport: true,
        close: false,
        visible: false,
        draggable: false,
        modal:false,
        context: ['list_recent_items', 'tr', 'br']
    });
    recent.show();
}

//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) {

    if (category_url == "tops")
        category_url = '01_tops';
    else if (category_url == "pants")
        category_url = '02_pants';
    else if (category_url == "denim")
        category_url = '03_denim';
    else if (category_url == "skirts-dresses")
        category_url = '04_skirts_dresses';
    else if (category_url == "suits")
        category_url = '05_suits';
    else if (category_url == "jackets-outerwear")
        category_url = '06_jackets_outwear';
    else if (category_url == "denim")
        category_url = '01_tops';
    else if (typeof category_url == "undefined")
        category_url = '01_tops';

    //if (typeof sizecharts_panel != "undefined") { sizecharts_panel.show(); return;}
    sizecharts_panel = new YAHOO.widget.Panel("sizecharts_p", {
        close:false,
        visible:false,
        draggable:false,
        modal:true,
        zIndex:500,
        xy:[234,69],
        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 = 695;
        var height = 710;
        if (schrt_id == '02_pants' || schrt_id == '03_denim' || schrt_id == '06_jackets_outwear'){
                height = 588;
        } else if (schrt_id == '04_skirts_dresses'){
                height = 678;
        } else if (schrt_id == '05_suits'){
                height = 738;
        }
        var sizecharts_body = '<img src="/images/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="678,2,693,19"   href="javascript:show_selects();sizecharts_panel.hide();" />' +
                                '<area shape="rect" coords="14,83,77,106"   href="javascript:recall_sizecharts(\'01_tops\');" />' +
                                '<area shape="rect" coords="78,83,131,106"  href="javascript:recall_sizecharts(\'02_pants\');" />' +
                                '<area shape="rect" coords="133,83,189,106" href="javascript:recall_sizecharts(\'03_denim\');" />' +
                                '<area shape="rect" coords="192,83,301,106" href="javascript:recall_sizecharts(\'04_skirts_dresses\');" />' +
                                '<area shape="rect" coords="304,83,358,106" href="javascript:recall_sizecharts(\'05_suits\');" />' +
                                '<area shape="rect" coords="359,83,489,106" href="javascript:recall_sizecharts(\'06_jackets_outwear\');" />' +
                 '</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'))-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';
}


//to display giftcard pin number overlay
var win_pin = null;
function openPinNumber(){
    // var obj = document.getElementById('w_gcPin');
    win_pin = new YAHOO.widget.Panel('w_gcPin',
        {
            fixedcenter:true,
            close:false,
            draggable:false,
            zindex:101,
            modal:true,
            visible:false,
            underlay:'none',
            constraintoviewport: true
        }
    );
    // obj.style.display = "block";
    var pin_body = '<div id="w_gcPin" style="margin:-200px 375px; padding: 1px; background-color: rgb(255, 255, 255); position: absolute; width: 425px;">'+
                        '<div style="text-align:right;margin:3px;">'+
                            '<a href="#" onclick="closePinNumber();return false;"><img src="/images/close_btn.jpg"/></a>'+
                        '</div>'+
                        '<div style="margin: 0 30px 20px 30px;">'+
                            '<img src="/images/cart/pin_number.jpg"/>'+
                        '</div>'+
                    '</div>';
    win_pin.setBody(pin_body);
    win_pin.render(document.body);
    win_pin.show();
    /* Underlay/Mask closes when it's clicked */
    var underlay = document.getElementById('w_gcPin_mask');
    if (underlay) YAHOO.util.Event.addListener(underlay, "click", function(){win_pin.hide();});
}

function closePinNumber(){
    win_pin.hide();
}

// 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))-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 = "";
}



// for check balance overlay 
var win_cb = null;
function getCheckB(url) {

    if(YAHOO.lang.isObject(win_cb)){
        win_cb.destroy();
        win_cb = null;
    }

    win_cb = new YAHOO.widget.Panel('w_chkblnc',
        {
            fixedcenter:true,
            close:false,
            draggable:false,
            zindex:101,
            modal:true,
            visible:false,
            underlay:'none',
            constraintoviewport: true
        }
    );
    // obj.style.display = "block";
    var cb_url =url;//'/gift-cards/check-balance';";
    var check_balance_iframe = '<div id="w_chkblnc" style="width:500px; height:355px; margin:-200px 375px; display:block; background-color: rgb(255, 255, 255); position:absolute;">'+
                                    '<div style="position:absolute;">'+
                                        '<div style="text-align:right;margin:3px;">'+
                                            '<a href="#" onclick="closegetCheckB();return false;"><img src="/images/close_btn.jpg" style="vertical_align:middle;"></a>'+ 
                                        '</div>'+
                                        '<iframe id="cb_ifr" src="'+cb_url+'" scrolling="no" style="width:500px; height:340px; overflow:hidden;background-color: rgb(255, 255, 255);" frameborder="0" ></iframe>'+
                                    '</div>'+
                                '</div>';
    
    win_cb.setBody(check_balance_iframe);
    win_cb.render(document.body);
    win_cb.show();
    /* Underlay/Mask closes when it's clicked */
    var underlay = document.getElementById('w_chkblnc_mask');
    if (underlay) YAHOO.util.Event.addListener(underlay, "click", function(){closegetCheckB();});

}

function closegetCheckB(){
    win_cb.hide();
}

var win_cb2 = null;
function getCheckBResult(balance){
    //close checkbalance form overlay
    win_cb.hide();
        
    if(YAHOO.lang.isObject(win_cb2)){
        win_cb2.destroy();
        win_cb2 = null;
    }
        
    //open the new one with balance results
    win_cb2 = new YAHOO.widget.Panel('w_chkblnc2',
    {
        fixedcenter:true,
        close:false,
        draggable:false,
        zindex:101,
        modal:true,
        visible:false,
        underlay:'none',
        constraintoviewport: true
    });
    var check_balance_iframe = '<div id="w_chkblnc2" style="width:475px; height:150px; margin:-200px 375px; display:block; background-color: rgb(255, 255, 255); position:absolute;">'+
                                    '<div style="text-align:right;margin:3px;">'+
                                        '<a href="#" onclick="closegetCheckB2();return false;"><img src="/images/close_btn.jpg" style="vertical_align:middle;"></a>'+ 
                                    '</div>'+
                                    '<div style="color: #666666; margin:15px 30px;">'+
                                        '<span style="font-size: 18px;">Your Gift Card balance is $'+balance+'</span><br/><br/>'+
                                        'Use your Gift Card online or at a store near you today.<br/>'+
                                        'View <a href="/customer/index/?topic=order&partial=giftcard" style="color: #336699;text-decoration:underline">Redemption Instructions</a>.<br/><br/>'+
                                        '<div style="text-align:right;"><a href="/" ><img src="/images/shopnow_btn.jpg"></a></div>'+
                                    '</div>'+
                                    
                                '</div>';
    
    win_cb2.setBody(check_balance_iframe);
    win_cb2.render(document.body);
    win_cb2.show();
    /* Underlay/Mask closes when it's clicked */
    var underlay = document.getElementById('w_chkblnc2_mask');
    if (underlay) YAHOO.util.Event.addListener(underlay, "click", function(){closegetCheckB2();});

}
function closegetCheckB2(){
    win_cb2.hide();
}

function closegetCheckBRedirect(url){
    win_cb2.hide();
    window.location=url;
}
