var sizec=-1; var siz0 = new Array(); var siz1 = new Array(); var ste0=''; var ste1=''; var mea=''; var grain=0; var grain_open=0;
function mtn_esok(cnt) {
    var loc='search.php?sok='; var kw=0; var cb;
    for (var i=0;i<cnt;i++) { cb=find_object('cb'+i); if (cb) { if (cb.checked) { if (kw++) { loc+='%20'; } loc+=mtn_escape(cb.value); } } }
    if (kw) { location=loc; } else { alert(mtn_lang('ext_alert_nokeyword')); } }

var last_frame = "";
var bg_price = 0;
var frame_price = 0;
var g_s = "";
var g_sid = "";
var g_unq = "";
var g_width = "";
var g_height = "";
var g_frame_thickness = 0;
var g_mounted_size = 2;
var g_basket = false;
var g_mats_horiz = 7; //this will be set in extend.tpl again, with values defined in _art.php
var g_mats_top = 7; 
var g_mats_bottom = 8; 
var g_picture_width;
var g_picture_height;
var g_div_maxwidth = 600;

function initExtend() {
    var o = find_object("image");
    if (o) {
        g_picture_width = o.offsetWidth;
        g_picture_height = o.offsetHeight;
    }
    changeBGOption(true);
    changeSize(null);
}
function changeBGOption(init) {
    if (init == undefined) init = false;
    var frm = document.forms.art_form;
    var bg_type = frm.bg_type[frm.bg_type.selectedIndex].value;
    var sub_canvas = document.getElementById("sub_canvas");
    var sub_paper = document.getElementById("sub_paper");
    var sub_papertypes = document.getElementById("sub_papertypes");
    var sub_mats = document.getElementById("sub_mats");
    var sub_filter = document.getElementById("sub_frame_filter");
    var sub_frames = document.getElementById("sub_frames");
    
    sub_filter.style.display = "none";
    sub_frames.style.display = "none";

    if (bg_type == "CANVAS") {
        frm.canvas_frame = ""
        sub_paper.style.display = "none";
        sub_papertypes.style.display = "none";
        sub_mats.style.display = "none";
        sub_canvas.style.display = "";
    } else {
        sub_canvas.style.display = "none";
        sub_paper.style.display = "";
        sub_papertypes.style.display = "";
        sub_mats.style.display = "";
        getPapers();
    }
    getFrames();
    if (!init) clearFrame();
    calcPrice();

    document.basket_form.bg.value = bg_type;
}

function getArtID() {
    return document.forms.art_form.id.value;
}

function changeSize(obj) {
    var frm = document.forms.art_form;
    var size = frm.size[frm.size.selectedIndex].value;
    var sub_custom_size = document.getElementById("sub_custom_size");

    var err = document.getElementById("sub_custom_size_error");
    if (size == "custom") {
        if (!obj) obj = frm.cus_width;
        customSize(obj,"no");
        sub_custom_size.style.display = "";
        err.style.display = "";
        document.getElementById("info_selected_size").innerHTML = lrs['ext_select_or_enter_size'];
        document.getElementById("info_total_size").innerHTML = "";
    } else {
        err.style.display = "none"
        sub_custom_size.style.display = "none";
        sizes = size.split("X");
        g_width = parseFloat(sizes[0]);
        g_height = parseFloat(sizes[1]);
        document.getElementById("info_selected_size").innerHTML = ownToFixed(g_width,1) + " cm X " + ownToFixed(g_height,1) + " cm";
        changeTotalSize();
    }
    
    if(g_s != ""){
        setFrame(g_s,g_unq);
    }
    calcPrice();
    document.basket_form.width.value = g_width;

}

function customSize(obj,callme) {
    var frm = document.forms.art_form;
    var cus_width = frm.cus_width.value;
    var cus_height = frm.cus_height.value;
    var err = document.getElementById("sub_custom_size_error");
    if ((cus_width && obj.name == "cus_width") || (cus_height && obj.name == "cus_height")) {
        var er = err.childNodes[0];
        if (obj.name == "cus_width") {
            cus_height = Math.round(frm.cus_width.value / art_p * 10)/10;
            frm.cus_height.value = cus_height;
        } else {
            cus_width = Math.round(frm.cus_height.value * art_p * 10)/10;
            frm.cus_width.value = cus_width;
        }
        if (cus_width > max_width || cus_height > max_height) {
            er.style.color = '#bb0000';
            document.getElementById("info_selected_size").innerHTML = lrs['ext_select_or_enter_size'];
            document.getElementById("info_total_size").innerHTML = "";
            er.style.display = "";
            err.style.display = "";
            return false;
        } else if (cus_width < min_width || cus_height < min_height) {
            er.style.color = '#bb0000';
            document.getElementById("info_selected_size").innerHTML = lrs['ext_select_or_enter_size'];
            document.getElementById("info_total_size").innerHTML = "";
            er.style.display = "";
            err.style.display = "";
            return false;
        } else {
            er.style.color = '#9f9f9f';
        }
        g_width = cus_width;
        g_height = cus_height;
        document.getElementById("info_selected_size").innerHTML = ownToFixed(g_width,1) + " cm X " + ownToFixed(g_height,1) + " cm";
        changeTotalSize();
        if(g_s != "" && callme == "yes") {
            setFrame(g_s,g_unq);
        }
        document.basket_form.width.value = g_width;
        if (callme=="yes") {
            calcPrice();
        }
        return true;
    }
    return false;
}
function changeMountedSize() {
    g_mounted_size = document.art_form.mounted_size[document.art_form.mounted_size.selectedIndex].value;
    document.basket_form.mounted_size.value = g_mounted_size;
    calcPrice();
}

function changeTotalSize() {
    var mats = "no";
    var chk_mats = document.getElementById("chk_mats");
    if (chk_mats && chk_mats.checked == true)  {mats="yes";}
    var width = parseFloat(g_width);
    var height = parseFloat(g_height);
    if (mats == "yes") {
        width += 2 * parseFloat(g_mats_horiz);
        height += parseFloat(g_mats_top) + parseFloat(g_mats_bottom);
    }
    var total_width = ownToFixed(parseFloat(width) + 2 * g_frame_thickness,1);
    var total_height = ownToFixed(parseFloat(height) + 2 * g_frame_thickness,1);
    document.getElementById("info_total_size").innerHTML = total_width + " cm X " + total_height + " cm";
}

function getFrameValue() {
    var frm = document.forms.art_form;
    var bg_type = frm.bg_type[frm.bg_type.selectedIndex].value;    
    if (bg_type == "CANVAS") {
        return frm.canvas_framing[frm.canvas_framing.selectedIndex].value;
    } else {
        return frm.paper_framing[frm.paper_framing.selectedIndex].value;
    }
}

function getPapers() {
    load_papers();    
}

function getFrames() {
    var frm = document.forms.art_form;
    var bg_type = frm.bg_type[frm.bg_type.selectedIndex].value;
    var load_frame = false;
    var sub_mats = document.getElementById("sub_mats");
    var sub_no_framing = document.getElementById("sub_no_framing");
    var sub_mounted = document.getElementById("sub_mounted");
    sub_mats.style.display = "none";
    sub_mounted.style.display = "none";
    var opt_framing = getFrameValue();
    if (bg_type == "CANVAS") {
        sub_mats.style.display = "none";
    } else {
        if (opt_framing == "frames") sub_mats.style.display = "";
    }
    opt_framing == "frames" ? load_frame = true : load_frame = false;
    if (opt_framing == "no_framing") {
        sub_no_framing.style.display = "";
    } else {
        sub_no_framing.style.display = "none";
    }
    if ((opt_framing == "mounted" || opt_framing == "self") && bg_type == "CANVAS") {
        sub_mounted.style.display = "";
    }
    
    if (load_frame === true) {
        load_frame_filter();
        load_frames();    
    } else {
        clearFrame();
        calcPrice();
        document.getElementById("sub_frame_filter").style.display = "none";
        document.getElementById("sub_frames").style.display = "none";
    }
   document.basket_form.framing_opt.value = opt_framing;
}

function load_frame_filter() {
    var frm = document.forms.art_form;
    var bg_type = frm.bg_type[frm.bg_type.selectedIndex].value;
    var filter_tr = document.getElementById("sub_frame_filter");
    var frames_div = document.getElementById("frame_list");
    var tdframefilter = document.getElementById("tdframefilter");
    tdframefilter.className = "rcol load_small";
    tdframefilter.innerHTML = "loading filter ...";
    filter_tr.style.display = "";
    frames_div.className = "load_big";        
    frames_div.innerHTML = "loading frames ...";

    if (window.XMLHttpRequest) xh_filter = new XMLHttpRequest();
    else if (window.ActiveXObject) xh_filter = new ActiveXObject("Microsoft.XMLHTTP");
    var url = "x_extend.php?action=get_frames_filter&bg_type=" + bg_type + "&rnd=" + randomText(20);
    xh_filter.open("GET",url,true);
    xh_filter.onreadystatechange = function() {
            if (xh_filter.readyState == 4 || xh_filter.readyState == "complete") {
                var tdframefilter = document.getElementById("tdframefilter");
                tdframefilter.className = "rcol";
                tdframefilter.innerHTML = xh_filter.responseText;
            }
        }//end response
    xh_filter.send(null);
}

function load_papers() {
    document.getElementById("sub_papertypes").style.display = "";
    var papers_div = document.getElementById("paper_list");
    var frm = document.forms.art_form;
    papers_div.innerHTML = "loading frames ...";
    if (window.XMLHttpRequest) xh_papers = new XMLHttpRequest();
    else if (window.ActiveXObject) xh_papers = new ActiveXObject("Microsoft.XMLHTTP");
    var url = "x_extend.php?action=get_papers&rnd=" + randomText(20) + "&paper_prdc=" + paper_prdc;
    xh_papers.open("GET",url,true);
    xh_papers.onreadystatechange = function() {
        if (xh_papers.readyState == 4 || xh_papers.readyState == "complete") {
            var papers_div = document.getElementById("paper_list");
            //papers_div.className = "";
            papers_div.innerHTML = xh_papers.responseText;
            setPaper();
        }
    }//end response
    xh_papers.send(null);
}

function load_frames() {
    document.getElementById("sub_frames").style.display = "";
    var frames_div = document.getElementById("frame_list");
    var frm = document.forms.art_form;
    var bg_type = frm.bg_type[frm.bg_type.selectedIndex].value;    
    frames_div.innerHTML = "loading frames ...";
    frames_div.className = "load_big";
    var obj_cm_filter = document.getElementById("cm_filter");
    var cm_filter = 0;
    if (obj_cm_filter)  cm_filter = obj_cm_filter[obj_cm_filter.selectedIndex].value;
    if (window.XMLHttpRequest) xh_frames = new XMLHttpRequest();
    else if (window.ActiveXObject) xh_frames = new ActiveXObject("Microsoft.XMLHTTP");
    var url = "x_extend.php?action=get_frames&bg_type=" + bg_type + "&cm_filter=" + cm_filter + "&rnd=" + randomText(20);
    xh_frames.open("GET",url,true);
    xh_frames.onreadystatechange = function() {
        if (xh_frames.readyState == 4 || xh_frames.readyState == "complete") {
            var frames_div = document.getElementById("frame_list");
            frames_div.className = "";
            frames_div.innerHTML = xh_frames.responseText;
            if (g_sid) {
                g_s = find_object(g_sid);
            }
            if (!(g_unq && g_s)) { // find a default if not set
                var frame_list = document.getElementById("frame_list");
                var c = frame_list.childNodes[0].childNodes;
                for (var i = 0; i < c.length - 1; i++) {
                    if (c[i].tagName == "DIV") {
                        if (c[i].childNodes[0]) {
                            var deff=c[i].childNodes[0];
                            if (deff.id.substring(0,4)=="fra_") {
                                //alert(deff.id.substring(4));
                                g_unq=deff.id.substring(4);
                                g_s=deff;
                                break;
                            }
                        }
                    }
                }
            }
            if (g_unq && g_s) {
                setFrame(g_s, g_unq);
                changeMats(true);
            }
        }
    }//end response
    xh_frames.send(null);
}

function changeMats(calc_price) {
    var frm = document.forms.art_form;
    var bg_type = frm.bg_type[frm.bg_type.selectedIndex].value;
    var chk = document.getElementById("chk_mats");
    var div_mats = document.getElementById("fmats");
    if (bg_type == "CANVAS") chk.checked = false;
    if (chk.checked == true && last_frame != "") {
        size = getSize();
        var o = find_object('image');
        var pc = parseFloat(g_width);
        var pp = parseFloat(g_picture_width); //o.offsetWidth;



        if (pp*(1+2*g_mats_horiz / pc) > g_div_maxwidth) {
            pp = Math.round(g_div_maxwidth / (1+2*g_mats_horiz / pc));
        }
        o.style.width = pp+'px';
        o.style.height = Math.round(pp * g_picture_height / g_picture_width) + 'px';
            
        var mw = Math.round(g_mats_horiz / pc * pp); 
        var mt = Math.round(g_mats_top / pc * pp); 
        var mb = Math.round(g_mats_bottom / pc * pp); 
        var div_mats = find_handle('fmats');
        div_mats.paddingLeft = mw+'px';
        div_mats.paddingRight = mw+'px';
        div_mats.paddingTop = mt+'px';
        div_mats.paddingBottom = mb+'px';
    } else {
        var o = find_object('image');
        o.style.width = g_picture_width + 'px';
        o.style.height = g_picture_height + 'px';
        div_mats.style.padding = "0px";
    }
    if (calc_price==true) calcPrice();
    
    document.basket_form.mats.value = chk.checked ? "yes" : "no";
    setFramePadding(g_unq);

    changeTotalSize();

}
function addMatsInBasket(idx) {
    var o = find_object('image'+idx);
    var pp = o.offsetWidth
    var pc = g_width;
    
    var mw = Math.round(g_mats_horiz / pc * pp); 
    var mt = Math.round(g_mats_top / pc * pp); 
    var mb = Math.round(g_mats_bottom / pc * pp); 
    var div_mats = find_handle('fmats'+idx);
    div_mats.paddingLeft = mw+'px';
    div_mats.paddingRight = mw+'px';
    div_mats.paddingTop = mt+'px';
    div_mats.paddingBottom = mb+'px';
    
}
function getSize() {
    var frm = document.forms.art_form;
    var size = frm.size[frm.size.selectedIndex].value;
    if (size == "custom") {
        if (customSize(frm.cus_width,'no')) {
            return frm.cus_width.value + "X" + frm.cus_height.value;
        } else {
            return "error";
        }
    } else {
        return size;
    }
}




function calcPrice() {
    changeMats(false);
    var frm = document.forms.art_form;
    var bg_type = frm.bg_type[frm.bg_type.selectedIndex].value;
    var chk_mats = document.getElementById("chk_mats");
    var mats = "no";
    if (chk_mats && chk_mats.checked == true)  {mats="yes";}
    var framing_opt = getFrameValue();
    if (window.XMLHttpRequest) xh_bp = new XMLHttpRequest();
    else if (window.ActiveXObject) xh_bp = new ActiveXObject("Microsoft.XMLHTTP");
    var url = "x_extend.php?action=get_price&id=" + getArtID() + "&bg=" + bg_type + "&mats=" + mats + "&framing_opt=" + framing_opt + "&width=" + getSize().split("X")[0] + "&unq=" + last_frame +"&rnd=" + randomText(20) + '&mounted_size='+g_mounted_size + '&paper_prdc=' + paper_prdc;
    xh_bp.open("GET",url,true);
    xh_bp.onreadystatechange = function() {
            if (xh_bp.readyState == 4 || xh_bp.readyState == "complete") {
                prices = xh_bp.responseText.split("|::|");
                frame = document.getElementById("frame_price");
                frame_row = document.getElementById("frame_price_row");
                bg = document.getElementById("bg_price");
                bg_row = document.getElementById("bg_price_row");
                //ship = document.getElementById("ship_price");
                //ship_row = document.getElementById("ship_price_row");
                total = document.getElementById("total_price");
                if (prices.length == 4) {
                    if (prices[1] == "no") frame_row.style.display = "none";
                    else frame_row.style.display = "";
                    bg.innerHTML = curr_html + ownToFixed(prices[0],0);
                    frame.innerHTML = curr_html + ownToFixed(prices[1],0);
                    total.innerHTML = curr_html + ownToFixed(prices[2],0);
                    /*
                    if (prices[3] == 'none') {
                        ship_row.style.display = 'none';
                        ship.innerHTML = '';
                    } else {
                        ship.innerHTML = curr_html + ownToFixed(prices[3],0);
                    }
                    */
                    
                }

            }
        }//end response
    xh_bp.send(null);
}

function getPrefix(idx){
    
    //image dpcm
    var o = find_object('image'+idx);
    var pp = o.offsetWidth
    var pc = g_width;
    var pr = Math.round(pp / pc);
    
    var ic = g_frame_thickness;
    op =  Math.round(pr * ic);

    op = op > 25 ? 25 : (op < 2 ? 2 : op);

    return op;

}

function getPadding(prefix){
    var padding = prefix + 'px';
    return padding;
}
function setFramePadding(unq, idx) {
    if (unq == undefined || unq == '') return false;
    if (idx == undefined) idx = '';
    
    g_unq = unq;
    last_frame = unq;
    
    var img = new Array("ts", "rs", "bs", "ls", "tlc", "trc", "brc", "blc");
    var repeat = new Array("repeat-x", "repeat-y", "repeat-x", "repeat-y", "no-repeat", "no-repeat", "no-repeat", "no-repeat");
    var pos = new Array("top", "right", "bottom", "left", "top left", "top right", "bottom right", "bottom left");
    var prefix = getPrefix(idx);
    var padding = getPadding(prefix);
    for (var i = 0; i < 8; i++) {
        var obj = document.getElementById("f" + img[i]+idx);
        var sbg = "url(frames/" + prefix + "_" + unq + img[i] + ".gif) " + repeat[i] + " " + pos[i];
        obj.style.background = sbg;
    }
    document.getElementById("fp"+idx).style.padding = padding;
}
function setPaper() {
    var ps=document.getElementById("paper_prdc");
    var pi=ps.selectedIndex;
    paper_prdc=ps[pi].value;
    document.basket_form.paper_prdc.value = paper_prdc;
    calcPrice();
}
function setFrame(s, unq, idx) {
    if (idx == undefined) idx = '';
   
    setFramePadding(unq, idx);
    
    g_s = s;
    var frame_list = document.getElementById("frame_list");
    var c = frame_list.childNodes[0].childNodes;
    for (var i = 0; i < c.length - 1; i++) {
        if (c[i].tagName == "DIV") {
            if (c[i].childNodes[0]) {
                c[i].childNodes[0].childNodes[0].className = "";
            }
        }
    }
   
   s.childNodes[0].className = "active"; 
   if (g_unq) {
       g_frame_thickness = parseFloat(document.art_form.elements['frame_thickness_'+g_unq].value);
   }
   changeTotalSize();

   calcPrice();

   document.basket_form.frame_prdc.value = "";
   document.basket_form.unq.value = unq;

   setFramingOpt();

}
function setFramingOpt() {
    var bg_type = document.art_form.bg_type[document.art_form.bg_type.selectedIndex].value;
    if (bg_type == "CANVAS") {
        var framing_opt = document.art_form.canvas_framing[document.art_form.canvas_framing.selectedIndex].value;
    } else {
        var framing_opt = document.art_form.paper_framing[document.art_form.paper_framing.selectedIndex].value;
    }

   document.basket_form.framing_opt.value = framing_opt;
}

function clearFrame() {
    var img = new Array("ts", "rs", "bs", "ls", "tlc", "trc", "brc", "blc");
    for (var i = 0; i < 8; i++) {
        var obj = document.getElementById("f" + img[i]);
        var sbg = "url(none) ";
        obj.style.background = sbg;
    }
    document.getElementById("fp").style.padding = "0px";
    last_frame = "";

    document.basket_form.unq.value = "";
    document.basket_form.frame_prdc.value = "";
    setFramingOpt();

    var h = find_handle('total_size');
    if (h) {
        //h.display = 'none';
    }
    g_frame_thickness = 0;
    g_unq = null;
}

function changeFilter(obj) {
    load_frames();
}


