var pieces=new Array("top","bottom","left","right","top_left","top_right","bottom_left","bottom_right");

var dimensioni_effetto_antico={};
dimensioni_effetto_antico["030x40"]="";
dimensioni_effetto_antico["040x50"]="/1";
dimensioni_effetto_antico["050x60"]="/2";
dimensioni_effetto_antico["050x70"]="/3";
dimensioni_effetto_antico["060x90"]="/4";
dimensioni_effetto_antico["080x100"]="/5";
dimensioni_effetto_antico["090x120"]="/6";
dimensioni_effetto_antico["100x150"]="/7";

var prefix="/cornici/";

var now_selected_frame="";
var size_regexp=/^.*-(\d*x\d*)$/;
var desc_size_regexp=/(\d+[xX]\d+)/;

function is_artist_subdepartment(){
    /*stabilisce se siamo in un reparto figlio di artisti*/
    var path_container=o2b_GetElementsByClassName("path");
    var i=0;
    var the_a=null;
    /*aquisisco il riferimento al primo link*/
    while(i<path_container[0].childNodes.length && the_a==null){
        if(path_container[0].childNodes[i].tagName=="a" || path_container[0].childNodes[i].tagName=="A"){
            the_a=path_container[0].childNodes[i]
        }
        i++;
    }
    first_dep_address=the_a.href;
    var first_dep_regex=/department\/1\//;
    return first_dep_regex.exec(first_dep_address)!=null;
}

/*deve essere costruito solo per i figli del reparto artisti*/
function buildFrameMenu(){
    if(is_artist_subdepartment()){
        var container =document.getElementById("framesMenu");
        var images="";
        /*immagine per "nessuna cornice"*/
        images+= '<img src="/images/noframe.jpg" '+
                 'onclick="'+
                 "selectFrame('')"+
                 '" class="frameIcon">';
        /*altre immagini*/
        for(indice in frames){
            images+='<img src="'+
                    prefix+
                    frames[indice].name+
                    "/preview.jpg"+
                    '" onclick="'+
                    "selectFrame('"
                    +frames[indice].name+
                    "')"+'" class="frameIcon" alt="'+frames[indice].name+'">';
        }
        container.innerHTML=images;
        container.style.display="block";

    }else{
        /*nasconde effetto antico e costo cornice*/
        var to_hide=o2b_GetElementsByClassName('o2b_hide_if_not_painting');
        var i=0;
        for(i in to_hide){
            to_hide[i].style.display="none";
        }
    }
}

function imagesLoaded(){
   //piecesLoaded++;
   /*immagini*/
   for(indice in pieces){
      var element=document.getElementById(pieces[indice]);
      if(now_selected_frame==""){
         element.style.backgroundImage="none";
      }else{
         element.style.backgroundImage="url('"+prefix+now_selected_frame+"/"+pieces[indice]+".jpg')";
      }
   }
   /*prezzi*/
   var prices=o2b_GetElementsByClassName("_price_frame");
   var canvas_variant_desc=o2b_GetElementsByClassName("_desc");
   for(i=0;i<canvas_variant_desc.length;i++){
      var m = desc_size_regexp.exec(canvas_variant_desc[i].innerHTML);
      var size=m[1].replace("X","x");
      var frame_price;
      if(now_selected_frame==""){
         frame_price=0;
      }else{
         frame_price=frames[frames_index[now_selected_frame]]["variants"][size];
      }
      var price_span=prices[i];//.firstChild;
      var canvas_price_unformatted=fromClassToPrice(price_span.className);
      price_span.innerHTML=now_selected_frame==""?'Senza':formatPrice(frame_price);
   }
   /*azzero piecesLoaded per la prox volta*/
   //piecesLoaded=0;

};

var piecesLoaded=0;
function selectFrame(name){
   now_selected_frame=name;
   /*preloading immagini*/
   var tmpload=[];
   for(indice in pieces){
      tmpload[indice]=new Image();
      tmpload[indice].src=prefix+name+"/"+pieces[indice]+".jpg')";
   }
   //window.setTimeout(imagesLoaded,2000);
   //alert("wait a little bit...")
   imagesLoaded();
}

function addToCart(element,desc){
    var m = desc_size_regexp.exec(desc);
    var size=m[1].replace("X","x");
    if(now_selected_frame!=""){
        var field=document.createElement("input");
        field.setAttribute("type","hidden");
        field.setAttribute("name","Quantity."+now_selected_frame+"-"+size);
        field.setAttribute("value","1");
        element.form.appendChild(field);
    }
    //controllo se devo appendere l'effetto antico
    var check_antico=document.getElementById("anticato");
    //alert("here");
    if(check_antico.checked){
        var field2=document.createElement("input");
        field2.setAttribute("type","hidden");
        field2.setAttribute("name","Quantity.effetto antico"+dimensioni_effetto_antico[size]);
        //alert(size+" - Quantity.Antico"+dimensioni_effetto_antico[size]);
        field2.setAttribute("value","1");
        element.form.appendChild(field2);


    }
    return false;
}

function formatPrice(number){
   var chunks        = ( '' + number ).split('.');
   var number_tmp = '' + chunks[0];
   // arrotondo a 2 cifre il decimale
   var dec_tmp = chunks[1] > 0 ? ( chunks[1][2] > 5 ? chunks[1][0] + ( parseInt(chunks[1][1]) + 1 ) : ( chunks[1] + '' ).substr(0, 2) ) : '00';
   dec_tmp = ( dec_tmp + '00' ).substr(0, 2);
   var integer = '';
   var cicla = 1;
   while ( number_tmp.length > 0 ) {
       var group = number_tmp.substr(-3);
       number_tmp   = number_tmp.substr(0, number_tmp.length - group.length);
       if ( number_tmp.length ) {
           integer = "." + group + integer;
       } else {
           integer = group + integer;
       }
   }
   return "€&nbsp;"+integer + "," + dec_tmp;
}

function fromClassToPrice(classname){
   var regex = /^currency-(\d*)-(\d*)$/;
   if ( ( m = regex.exec(classname)) != null ) {
       return parseFloat(m[1]+"."+m[2]);
   }
   return "---";
}

function o2b_GetElementsByClassName(className, tag, node) {
   var elements = new Array();
   if ( node == null ) node = document;
   if ( tag == null ) tag = '*';
   var allElements = node.getElementsByTagName(tag);
   var allElementsLength = allElements.length;
   var regex = new RegExp("\s*" + className + "\s*");
   var i;
   var j;
   for ( i = 0, j = 0; i < allElementsLength; i++ ) {
       if ( regex.test(allElements[i].className) ) {
           elements[j] = allElements[i];
           j++;
       }
   }
   return elements;
}

function dump(obj){
   var toret="";
   for(i in obj){
      toret+=i+"";
   }
   return toret;
}

