function addOption(select_elem, label, value) {

    if (value=='001' && label=='NO SIZE'){    
        var opt = new Option(label, value,"defaultSelected");   //if has no size set as default value, this was added cos FF wasnt setting it as default in pdp and upsell
    } else {
        var opt = new Option(label, value);
    }
    
    try {
        select_elem.add(opt, null); // standards compliant
    } catch(ex) {
        select_elem.add(opt); // IE only
    }
}

function eval_js(o) {
    var scripts = [];
    var script_sources = o.responseText.split(/<script.*?>/);
    for (var i=1; i < script_sources.length; i++)
        scripts.push(script_sources[i].split(/<\/script>/)[0]);
    setTimeout((function() {
        for (var si=0; si< scripts.length; si++){
            eval(scripts[si]);
        }
    }), 1);
}

function selectColor(selected_el, item_id, color_id, color_description, medium_img, large_img, id, load_addtl_images) {
    var sUrl = '/updateAddtlImages';
    var postData = "item=" + item_id + "&color=" + color_id + "&function_name=change_image&id=" + id;
    var callback = {
        success: function(o) {
            if(o.responseText != ""){
                var addtl_imgs = YAHOO.util.Dom.get("addtl_images_container");
                if(addtl_imgs){
                    addtl_imgs.innerHTML = o.responseText;
                    YAHOO.util.Dom.setStyle(addtl_imgs, "visibility", "visible");
                }
            }
        }
    };
    if(load_addtl_images) YAHOO.util.Connect.asyncRequest('Post', sUrl, callback, postData);

    var swatches = document.getElementById("swatches"+id).childNodes;
    for (i in swatches) {
        if (swatches[i].firstChild) {
            swatches[i].firstChild.className = "";
        }
    }
    selected_el.firstChild.className = "selected";

    //display color info
    var span_description = YAHOO.util.Dom.get("color_description"+id);
    var span_price = YAHOO.util.Dom.get("color_price"+id);
    var span_sale_price = YAHOO.util.Dom.get("color_sale_price"+id);
    var span_reg_price = YAHOO.util.Dom.get("display_price"+id);
    var new_price = color_size[id][color_id];
    for(var j in new_price){
        new_price = new_price[j];
        break;
    }
    span_description.innerHTML = color_description;
    span_price.innerHTML = "$"+new_price['sale_price'];
    if(span_sale_price && (parseInt(span_reg_price.innerHTML) > parseInt(new_price['sale_price']))) 
        span_sale_price.innerHTML = "$"+new_price['sale_price'];
    else if(span_sale_price)
        span_sale_price.display = 'none';

    color_id_value[id] = color_id;

    var size = document.getElementById("size_select"+id);
    var old_size = size.value;

    while (size.length > 1) size.remove(1);

    var nosize = false;
    for (var size_id in color_size[id][color_id]) {
        if (color_size[id][color_id][size_id]['description']) {
            addOption(size, color_size[id][color_id][size_id]['description'], size_id);            
        }        
        if (size_id == "001")           //if has no size set as default value
            nosize = true;
    }

    if (size.length == 1) {
        size.selectedIndex = 1;
        disable_wish_add_tt(id);
    } else if (old_size) {
        size.value = old_size;
    } else if (nosize) {                //if has no size set as default value
        size.selectedIndex = 1;
        enable_wish_add_tt(id);
    } else {
        size.selectedIndex = 0;
        enable_wish_add_tt(id);
    }

    selectSize(size.value, id);
    global_color_id[id] = color_id;
    
    //
    var img = document.getElementById('product_image'+id);
    if (getFlashMovie("flashzoom")) {
        if (movieIsLoaded(getFlashMovie("flashzoom")) && id == 1) {
            getFlashMovie("flashzoom").setPath('/items/jus/images/medium/' + item_id + '_' + color_id);
            return;
        }
    } 
    if(img) img.src = medium_img;
} // function

function getFlashMovie(movieName) {
    var isIE = navigator.appName.indexOf("Microsoft") != -1;
    return (isIE) ? window[movieName] : document[movieName];
}

function movieIsLoaded (theMovie) {
    if (typeof(theMovie) != "undefined") {
        return theMovie.PercentLoaded() == 100;
    } else {
        return false;
    }
}

function change_image(new_image, id) {
    new_image = new_image.replace(/small/, "large");
    new_image = new_image.replace(/png$/, "jpg");
    if(id == 1){
        var item = new_image.match(/([0-9]+)_/g);
        var color = new_image.match(/([0-9]+)[A-Z]{0,1}.jpg$/g);
        item += "";
        color += "";
        if (movieIsLoaded(getFlashMovie("flashzoom"))) {
            getFlashMovie("flashzoom").setPath('/items/jus/images/medium/' + item.substring(0, item.length-1) + '_' + color.substring(0, color.length-4));
            return;
        }
    }
    else document.getElementById('oz_image'+id).src = new_image;
}


function enable_wish_add_tt(id){
    YAHOO.util.Dom.setStyle(YAHOO.util.Dom.get("addtobagbutton"+id+"_dis"),"display", "inline");
    YAHOO.util.Dom.setStyle(YAHOO.util.Dom.get("addtowishbutton"+id+"_dis"),"display", "inline");
    YAHOO.util.Dom.setStyle(YAHOO.util.Dom.get("addtowishtext"+id),"display", "inline-block");
    YAHOO.util.Dom.setStyle(YAHOO.util.Dom.get("addtobagbutton"+id),"display", "none");
    YAHOO.util.Dom.setStyle(YAHOO.util.Dom.get("addtowishbutton"+id),"display", "none");
    YAHOO.util.Dom.setStyle(YAHOO.util.Dom.get("addtowishbtn"+id+"_off"),"display", "inline");
    YAHOO.util.Dom.setStyle(YAHOO.util.Dom.get("addtowishtext"+id),"display", "none");
}

function disable_wish_add_tt(id){
    YAHOO.util.Dom.setStyle(YAHOO.util.Dom.get("addtobagbutton"+id+"_dis"),"display", "none");
    YAHOO.util.Dom.setStyle(YAHOO.util.Dom.get("addtowishbutton"+id+"_dis"),"display", "none");
    YAHOO.util.Dom.setStyle(YAHOO.util.Dom.get("addtowishtext"+id),"display", "none");
    YAHOO.util.Dom.setStyle(YAHOO.util.Dom.get("addtobagbutton"+id),"display", "inline");
    YAHOO.util.Dom.setStyle(YAHOO.util.Dom.get("addtowishbutton"+id),"display", "inline");
    YAHOO.util.Dom.setStyle(YAHOO.util.Dom.get("addtowishbtn"+id+"_off"),"display", "none");
    YAHOO.util.Dom.setStyle(YAHOO.util.Dom.get("addtowishtext"+id),"display", "inline-block");
}

function roll_in_link_txt(element, id){
    YAHOO.util.Dom.setStyle(YAHOO.util.Dom.get(element+id),"color", "#92278F");
}

function roll_out_link_txt(element, id){
    YAHOO.util.Dom.setStyle(YAHOO.util.Dom.get(element+id),"color", "#AAA");
}

function selectSize(size_id, id) {
    var qty =  document.getElementById("qty_select"+id);
    var old_qty = qty.value;

    while (qty.length > 0) qty.remove(0);
    addOption(qty, '1', '1');

    if (color_size[id][color_id_value[id]][size_id])
    {
        if (color_size[id][color_id_value[id]][size_id]['quantity'] != 0) {
            var max_qty = color_size[id][color_id_value[id]][size_id]['quantity'];
            if (max_qty > 9) 
                max_qty = 9;
            for (var i = 2; i <= max_qty; i++) {
                addOption(qty, '' + i, '' + i);
            }
            if (old_qty > 1) {
                qty.value = old_qty;
                if (qty.value < old_qty) {
                    qty.selectedIndex = qty.length - 1;
                }
            }
            else {
                qty.selectedIndex = 0;
            }
            disable_wish_add_tt(id);
            selectPrice(color_size[id][color_id_value[id]][size_id], id);
        }
        else{
            while (qty.length > 0) qty.remove(0);
            addOption(qty, '0', '');
            YAHOO.util.Dom.setStyle(YAHOO.util.Dom.get("addtobagbutton"+id), "display", "none");
            YAHOO.util.Dom.setStyle(YAHOO.util.Dom.get("addtobagbutton"+id+"_dis"), "display", "");
        }
    }
    else
    {
        for (var size_id in color_size[id][color_id_value[id]]) {
            if (color_size[id][color_id_value[id]][size_id]['price']) {
                selectPrice(color_size[id][color_id_value[id]][size_id], id);
            }
        }
        enable_wish_add_tt(id);
    }
}

function selectPrice(a, id) {
    var e;
    e = document.getElementById('display_price'+id);
    if (e) e.innerHTML = a['price'];
    e = document.getElementById('display_sale_price'+id);
    if (e) e.innerHTML = a['sale_price'];
}

function selectFirstColor(swatch, color)
{
    elem = document.getElementById("swatches"+swatch).childNodes[0];
    if (!elem)
        elem = document.getElementById("swatches"+swatch).childNodes[1];

    if (elem && color != null)
        elem = document.getElementById("swatch_"+color+"_"+swatch);

    if (elem && elem.onclick) return elem.onclick();
}


  /* Next and previous buttons */
    function setNextItem(item) {
        next_item = item
    }

    function setPrevItem(item) {
        prev_item = item
    }

// send item to a friend by email
function init_eaf_tooltip() {
    var eafTooltip = new YAHOO.widget.Tooltip('eafTooltip', { context:'eaf_send_dis',text:'Please fill in all required information',showDelay:500,zIndex: 500 } );
}

function eaf_check() {
    if(YAHOO.util.Dom.get('from_name').value != "" && YAHOO.util.Dom.get('to_mail').value != ""){
        YAHOO.util.Dom.setStyle(YAHOO.util.Dom.get("eaf_send_dis"), "display", "none");
        YAHOO.util.Dom.setStyle(YAHOO.util.Dom.get("eaf_send"), "display", "inline");
    }
    else{
        YAHOO.util.Dom.setStyle(YAHOO.util.Dom.get("eaf_send_dis"), "display", "inline");
        YAHOO.util.Dom.setStyle(YAHOO.util.Dom.get("eaf_send"), "display", "none");
    }
}

function showSendDetails (item_id, color) {
    var callback = {
        success: function(o) {
            sendPanel = new CustomPanel();
            sendPanel.init("send_details", "send_overlay", 851, 20, 484, 0, -55);
            sendPanel.setContent(o);
            setTimeout("init_eaf_tooltip()", 3000);
        },
        failure: function (o) {}
    };

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

function sendDetails() {
    var item = document.getElementById('item').value;
    var color = document.getElementById('color').value;
    var from_name = document.getElementById('from_name').value;
    var to_mail = document.getElementById('to_mail').value;
    var message_content = document.getElementById('message').value;

    if (!to_mail || !from_name){
        alert("Please fill in all the information");
        return;
    }

    var sUrl = '/email/sendToFriend';
    var postData = "item=" + item + "&color=" + color +"&from_name=" + from_name
                 + "&to_mail=" + to_mail + "&message_content=" + message_content;

    var callback = {
        success: function(o) {
            var message = "<div class='send_friend_result'>"+"your email has been sent to:<br />"+to_mail+"</div>";
            YAHOO.util.Dom.get("send_info_container").innerHTML = message;
            setTimeout(function(){sendPanel.hide()}, 3000);
        },
        failure: function(o) {
            var message = "<div class='send_friend_result'>Oops there was a problem sending your email</div>";
            YAHOO.util.Dom.get("send_info_container").innerHTML = message;
            setTimeout(function(){sendPanel.hide()}, 3000);
        }
    };

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

}

var printPanel;

function showPrintDetails (item_id, color) {
    var callback = {
        success: function(o) {
            var height = YAHOO.util.Dom.get("quickview_c").clientHeight;
            printPanel = new CustomPanel();
            printPanel.init("print_details", "print_overlay", 850, 20, height, 0, -55);
            printPanel.setContent(o);
            setTimeout(function(){
                var height = YAHOO.util.Dom.get("quickview_c").clientHeight - 35;
                YAHOO.util.Dom.setStyle(YAHOO.util.Dom.get("print_iframe"),
                    "height",
                    height+"px");
                YAHOO.util.Dom.setStyle(YAHOO.util.Dom.get("print_iframe"),
                    "display",
                    "block");
            }, 2000);
        },
        failure: function (o) {}
    };
    var color_desc = YAHOO.util.Dom.get("color_description1").innerHTML;
    var color_price = YAHOO.util.Dom.get("color_price1").innerHTML;
    color_price = color_price.replace('.', ',');
    YAHOO.util.Connect.asyncRequest(
        'POST',
        '/print/' + item_id,
        callback,
        'item=' + item_id + '&color=' + color + "&color_desc=" + color_desc + "&color_price=" + color_price
    );
}


function printDiv (id) {
    var a = window.open('','','width=640px,height=600px,resizable=true');
    a.document.open("text/html");
    a.document.write('<html><head><link rel="stylesheet" media="all" type="text/css" href="/css/product_detail.css" /></head><body>');
    a.document.write('<div style="width: 440px">');
    a.document.write('a');
    a.document.write('</div></body></html>');
    a.print();
}

function show_size_chart(urchin_tag) {
    YAHOO.util.Dom.setStyle(YAHOO.util.Dom.get('size_navigation'), "display", "block");
    size_content = new Object();
    size_content.responseText="<img src='/images/layout/sizechart_new.jpg' usemap='#size' /></map>";
    sizePanel.setContent(size_content);
	
	// this is for urchin track the size chart clicks 
	urchinTracker(urchin_tag+'/size_chart');
}

// tabs for xsells zoom
function tabs(){
    this.tabView;
    this.old_height = 0;
    this.init_tabs = function(){
        this.tabView = new YAHOO.widget.TabView('tabs', {orientation: 'left'});
    }
    this.show_tab = function(index){
        var gral_info = YAHOO.util.Dom.getElementsByClassName("oi_info", "div", "quickview_footer");
        this.hide_tabs();
        for(var i in gral_info){
            YAHOO.util.Dom.setStyle(gral_info[i], "visibility", "hidden");
        }
        var height = YAHOO.util.Dom.get("other_items").offsetHeight - 41;
        if(height < 650) {
            this.old_height = height + 41;
            height = 660;
            YAHOO.util.Dom.setStyle(YAHOO.util.Dom.get("other_items"), "height", "701px");
        }

        var shadow_height1 = height + 10;
        var shadow_height2 = shadow_height1 + 2;
        var shadow_height3 = shadow_height2 + 2;

        YAHOO.util.Dom.setStyle(YAHOO.util.Dom.get("tabs"), "height", height+"px" );
        YAHOO.util.Dom.setStyle(YAHOO.util.Dom.get("tabs_shadow_container"), "display", "block");
        YAHOO.util.Dom.setStyle(YAHOO.util.Dom.get("shadow1"), "height", shadow_height1+"px" );
        YAHOO.util.Dom.setStyle(YAHOO.util.Dom.get("shadow2"), "height", shadow_height2+"px" );
        YAHOO.util.Dom.setStyle(YAHOO.util.Dom.get("shadow3"), "height", shadow_height3+"px" );

        YAHOO.util.Dom.addClass(YAHOO.util.Dom.get("t_shadow"+index+"_1"), "t_shadow1");
        YAHOO.util.Dom.addClass(YAHOO.util.Dom.get("t_shadow"+index+"_2"), "t_shadow2");
        YAHOO.util.Dom.addClass(YAHOO.util.Dom.get("t_shadow"+index+"_3"), "t_shadow3");
        var tabs = YAHOO.util.Dom.getElementsByClassName("oi_thumb_container", "div", "quickview_footer");
        var imgs = YAHOO.util.Dom.getElementsByClassName("more_views_img", "img", "quickview_footer");
        for(var i in tabs){
            YAHOO.util.Dom.removeClass(tabs[i], "selected_tab" );
            YAHOO.util.Dom.removeClass(imgs[i], "selected_tab_img" );
        }
        YAHOO.util.Dom.addClass(YAHOO.util.Dom.get("oi_thumb_container"+index), "selected_tab" );
        YAHOO.util.Dom.addClass(YAHOO.util.Dom.get("more_views_img"+index), "selected_tab_img" );
        this.tabView.set("activeIndex", index-2);
        if (/MSIE (\d+\.\d+);/.test(navigator.userAgent)){
            var ieversion=new Number(RegExp.$1);
            if (ieversion==6){
                height += 16;
                YAHOO.util.Dom.setStyle(YAHOO.util.Dom.get("tabs_shadow_container"), "margin-top", "-"+height+"px" );
            }
        }
    }
    this.hide_tabs = function(){
        if(this.old_height != 0) YAHOO.util.Dom.setStyle(YAHOO.util.Dom.get("other_items"), "height", this.old_height+"px" );
        var tabs1 = YAHOO.util.Dom.getElementsByClassName("t_shadow1", "div", "quickview_footer");
        var tabs2 = YAHOO.util.Dom.getElementsByClassName("t_shadow2", "div", "quickview_footer");
        var tabs3 = YAHOO.util.Dom.getElementsByClassName("t_shadow3", "div", "quickview_footer");
        for(var i in tabs1){
            YAHOO.util.Dom.removeClass(tabs1[i], "t_shadow1");
            YAHOO.util.Dom.removeClass(tabs2[i], "t_shadow2");
            YAHOO.util.Dom.removeClass(tabs3[i], "t_shadow3");
        }

        var gral_info = YAHOO.util.Dom.getElementsByClassName("oi_info", "div", "quickview_footer");
        for(var i in gral_info) YAHOO.util.Dom.setStyle(gral_info[i], "visibility", "visible");
        YAHOO.util.Dom.setStyle(YAHOO.util.Dom.get("tabs_shadow_container"), "display", "none")
        var tabs = YAHOO.util.Dom.getElementsByClassName("oi_thumb_container", "div", "quickview_footer");
        var imgs = YAHOO.util.Dom.getElementsByClassName("more_views_img", "img", "quickview_footer");
        for(var i in tabs){
            YAHOO.util.Dom.removeClass(tabs[i], "selected_tab" );
            YAHOO.util.Dom.removeClass(imgs[i], "selected_tab_img" );
        }
    }
};

var tabView = new tabs();


function oz_selectColor(selected_el, item_id, color_id, color_description, img, id) {
    //display color info
    var span_description = YAHOO.util.Dom.get("oz_color_description"+id);
    var span_price = YAHOO.util.Dom.get("oz_color_price"+id);
    var new_price = color_size[id][color_id];
    for(var j in new_price){
        new_price = new_price[j];
        break;
    }
    span_description.innerHTML = color_description;
    span_price.innerHTML = "$"+new_price['price'];
    var imgage = document.getElementById('oz_image'+id);
    imgage.src = img;

    var sUrl = '/updateAddtlImages';
    var postData = "item=" + item_id + "&color=" + color_id + "&function_name=change_image&id=" + id;
    var callback = {
        success: function(o) {
            if(o.responseText != "" && document.getElementById('oz_addtl_imgs'+id)){
                document.getElementById('oz_addtl_imgs'+id).innerHTML = o.responseText;
                YAHOO.util.Dom.setStyle(YAHOO.util.Dom.get("oz_addtl_imgs"+id), "visibility", "visible");
            }
        }
    };
    YAHOO.util.Connect.asyncRequest('Post', sUrl, callback, postData);

    var swatches = document.getElementById("oz_swatches"+id).childNodes;
    for (i in swatches) {
        if (swatches[i].firstChild) {
            swatches[i].firstChild.className = "";
        }
    }
    selected_el.firstChild.className = "selected";

}

function oz_selectFirstColor(id) {
    elem = document.getElementById("oz_swatches"+id).childNodes[0];
    if (elem && elem.onclick) return elem.onclick();
    elem = document.getElementById("oz_swatches"+id).childNodes[1];
    if (elem && elem.onclick) return elem.onclick();
}

//sets carousels visibility
YAHOO.util.Event.onDOMReady(function (ev) {
            var carousels = YAHOO.util.Dom.getElementsByClassName("yui-skin-sam");
            for(var i in carousels)
                YAHOO.util.Dom.setStyle(carousels[i], "visibility", "visible");
        });
function scrollNext(obj){
            var next = obj._nextEnabled;
            var previous = obj._prevEnabled;
        }
function startCarousel(obj, id){
    YAHOO.util.Event.onDOMReady(function (ev) {
        var item;
        obj.render();
        obj.show();
    });
}

function carouselScroll(carousel,item_id){
    if(carousel._nextEnabled)
        carousel.scrollForward();
    else
        carousel.scrollTo(0, false);
}

function changeCatalogThumb(url, id, price, item_id){
    YAHOO.util.Dom.get("catalog_img_"+id).src = url;
    
    var span_sale_price = YAHOO.util.Dom.get("color_sale_price"+item_id);
    if(span_sale_price) span_sale_price.innerHTML = "$"+price;
}

function setSurcharge(surcharge,id,qty){
    var container = YAHOO.util.Dom.get("shipping_surcharge_"+id);
    
    if(container) container.innerHTML = surcharge * qty;
}
