/** Funktionserweiterungen Fu Dao 
  *
  * @date       
  * @version    0.001
  * @author     Bernd Göbel <web@strich-komma.de>
  * @depend     xlib_prototype.js, xlib_functions.js  
  *   
  */

  function init_inputCheck() {
    for( var x = 0, elements = document.getElementsByTagName('input'), l = elements.length; x < l; x++ ){
      var element = elements[x];
      if( element.className.indexOf('gs_size') > -1 ) {
        element.onkeyup = function () {
          check_input(this);
          if(element.name == 'gs_width' || element.name == 'gs_height' ){
           show_input(this); 
          }
        }
      }
      if(element.name == 'gs_width' && ( element.value != '' || element.value != 0 ) ){
        my_width = element.value.replace(/,/, '.');
      }
      if(element.name == 'gs_height' && ( element.value != '' || element.value != 0 ) ){
        my_height = element.value.replace(/,/, '.');
      }
    }
    show_input( false );
  }

  function check_input(me) {
		me.value = me.value.replace(/[^0-9,.]/, '');
		me.value = me.value.replace(/[.]/, ',');
		if( me.value === '0' ) me.value = 1;
	}
	
	var my_width  = 1;
  var my_height = 0;
	
  function show_input(me) {
	 if( !document.getElementById('show_relation') ) return false;
		if( me ){
      if( me.name == 'gs_width' ){
        my_width = me.value.replace(/,/, '.');
      }
      if( me.name == 'gs_height' ){
        my_height = me.value.replace(/,/, '.');
      }
    }
    var my_factor = 100/my_width;
    
    var new_width  = my_width  * my_factor;
    var new_height = my_height * my_factor;
    document.getElementById('show_relation').style.width  = parseInt(new_width) + 'px';
    document.getElementById('show_relation').style.height = parseInt(new_height) + 'px';
	}
	//----------------------------------------------------------------------------
	
	function create_popupLinks (){
    for (var x = 0, links = document.getElementsByTagName('a'), l = links.length; x < l; x++){
      var link = links[x];
     if( (link.target && link.target == '_blank') && ( link.href && link.href.indexOf('www.good-shadow.de') > -1 ) ){
        link.onclick = function( ){
          open_popupLink(this);
          return false;
        }
      }
    } 
   document.getElementById('pop-header').getElementsByTagName('a')[0].onclick = function( ){
      close_popupLink(this);
      return false;
    }
    document.getElementById('pop-footer').getElementsByTagName('a')[0].onclick = function( ){
      parent.frames['popup-window'].print();
      return false;
    }
  }
  
  
  function close_popupLink( me ){
    document.getElementById('popup').style.display = 'none';
    document.getElementById('overlaybox').style.display = 'none';
  }
  
  function open_popupLink( me ){
    document.getElementById('popup-window').src = me.href;
    document.getElementById('popup').style.display = 'block';
    document.getElementById('overlaybox').style.display = 'block';
    pos_popupLink(); 
  }
  
  function pos_popupLink (){
    var win_width, win_height, win_scrollLeft, win_scrollTop;
    var e_Layerbox, e_zoombox
    
    var arrayPageSize = getPageSize();
  	var arrayPageScroll = getPageScroll();
    
    if( document.getElementById('overlaybox')){
      obj_overlayBox = document.getElementById('overlaybox');
      obj_overlayBox.style.height = (arrayPageSize[1] + 'px');
    }
  	if( document.getElementById('popup')){
      obj_zoomBox = document.getElementById('popup');
    	var obj_zoomBoxTop = parseInt( arrayPageScroll[1] + ((arrayPageSize[3] - 35 - obj_zoomBox.offsetHeight) / 2) );
    	var obj_zoomBoxLeft = parseInt((arrayPageSize[0] - 20 - obj_zoomBox.offsetWidth ) / 2);
    	obj_zoomBox.style.top = (obj_zoomBoxTop < 0) ? "0px" : obj_zoomBoxTop + "px";
    	obj_zoomBox.style.left = (obj_zoomBoxLeft < 0) ? "0px" : obj_zoomBoxLeft + "px";
    }
  }
  /*---------------------------------------------------*/
  /* Filter */
  function set_filter(me) {
    var select_theme, select_trans, select_gs_group, select_surface, index;
    if( document.getElementById('select_theme')){
     index = document.getElementById('select_theme').selectedIndex;
      select_theme =  ( index == 0 ) ? 'all'  : document.getElementById('select_theme').options[index].text;
    }
    else{
      select_theme = 'all';
    }
    if( document.getElementById('select_trans')){
      index = document.getElementById('select_trans').selectedIndex;
      select_trans =  ( index == 0 ) ? 'all'  : document.getElementById('select_trans').options[index].text;
    }
    else{
      select_trans = 'all';
    }
    if( document.getElementById('select_gs_group')){
      index = document.getElementById('select_gs_group').selectedIndex;
      select_gs_group =  ( index == 0 ) ? 'all'  : document.getElementById('select_gs_group').options[index].text;
    }
    else{
      select_gs_group = 'all';
    }
    if( document.getElementById('select_surface')){
      index = document.getElementById('select_surface').selectedIndex;
      select_surface =  ( index == 0 ) ? 'all'  : document.getElementById('select_surface').options[index].text;
    }
    else{
      select_surface = 'all';
    }
    for( var x = 0, elements = document.getElementById('material_list').getElementsByTagName('dl'), l = elements.length; x < l; x++){
      element = elements[x];
      var visible = true;
      for( var m = 0, sub_elements = element.getElementsByTagName('dd'), count = sub_elements.length; m < count; m++){
        sub_element = sub_elements[m];
        if( select_theme != 'all' ){
          if ( sub_element.className == 'theme') {
            if( sub_element.firstChild.nodeValue.indexOf(select_theme) < 0 ){
              visible = false;
            }
          }
        }//end if
        if( select_trans != 'all' ){
          if ( sub_element.className == 'trans') {
            if( sub_element.firstChild.nodeValue != select_trans ){
              visible = false;
            }
          }
        }//end if
        if( select_gs_group != 'all' ){
          if ( sub_element.className == 'gs_group') {
            if( sub_element.firstChild.nodeValue != select_gs_group ){
              visible = false;
            }
          }
        }//end if
        if( select_surface != 'all' ){
          if ( sub_element.className == 'surface') {
            if( sub_element.firstChild.nodeValue != select_surface ){
              visible = false;
            }
          }
        } //end if
      }
      if( visible == true ) {
        element.parentNode.style.display = 'block';
      }else{
        element.parentNode.style.display = 'none';
      }
    }  
  }
  
  function obj_material_zoom(){
    var thisObject       = this;
    var posTop           = 100;
    
    var material_list_ID = 'material_list'
    var material_list    = false;
    
    var zoom_1_ID         = 'popup_material_zoom_1'
    var zoom_1_Box        = false;
    
    var zoom_1_header_id  = 'popup_material-header_zoom_1';
    var zoom_1_header_box = false;
    var zoom_2_ID         = 'popup_material_zoom_2'
    var zoom_2_Box        = false;
    var zoom_2_content_ID = 'popup_material_content_zoom_2';
    var zoom_2_content_Box = false;
    
    var zoom_2_header_id  = 'popup_material-header_zoom_2';
    var zoom_2_header_box = false;

    var image_path        = '';
    
  
    this.init = function( ){
      if( !document.getElementById(material_list_ID) ) return false;
      material_list     = document.getElementById(material_list_ID);
      
      zoom_1_Box        = document.getElementById(zoom_1_ID);
      zoom_1_header_box = document.getElementById(zoom_1_header_id);
       
      zoom_2_Box        = document.getElementById(zoom_2_ID);
      zoom_2_header_box = document.getElementById(zoom_2_header_id);
      zoom_2_content_Box = document.getElementById(zoom_2_content_ID);
      overlay            = document.getElementById('overlaybox');
      
      // open click
      for ( var x = 0, elements = material_list.getElementsByTagName('dd'), l = elements.length; x < l; x++ ){
        element = elements[x];
          if( element.className == 'image' ) {
            if(element.getElementsByTagName('img')[0]){
              element.getElementsByTagName('img')[0].onclick = function(){
                thisObject.make_zoom_1(this);
              }
            element.getElementsByTagName('img')[0].style.cursor = 'pointer'; 
          }
        }
      }
      
      document.getElementById('popup_material_image_zoom_1').onclick = function( ){
        thisObject.make_zoom_2(this);
        return false;
      } 
      
      zoom_1_header_box.getElementsByTagName('a')[0].onclick = function( ){
        thisObject.close_zoom_1(this);
        return false;
      } 
      zoom_2_header_box.getElementsByTagName('a')[0].onclick = function( ){
        thisObject.close_zoom_2(this);
        return false;
      } 
      // Aktivieren aus dem ersten Zoom Muster
      if( document.getElementById('popup_material_zoom_1').className == 'muster') {
        // Musterbestellung
        if( document.getElementById('pattern-selector') ){
          document.getElementById('pattern-selector').onclick = function () {
            thisObject.select_pattern(this);
            return false; 
          }
        }
      }
      if( document.getElementById('popup_material_zoom_1').className == 'material') {
        // Materialauswahl
        if( document.getElementById('material-selector') ){
          document.getElementById('material-selector').onclick = function () {
            thisObject.select_material(this);
            return false; 
          }
        }
        // Materialauswahl Top
        if( document.getElementById('material-selector-top') ){
          document.getElementById('material-selector-top').onclick = function () {
            thisObject.select_material(this);
            return false; 
          }
        }
        // Materialauswahl Bottom
        if( document.getElementById('material-selector-bottom') ){
          document.getElementById('material-selector-bottom').onclick = function () {
            thisObject.select_material(this);
            return false; 
          }
        }
      } 
    }
  
    this.make_zoom_1 = function( me ){
    
      // IE 6
      if( document.uniqueID && document.compatMode && !window.XMLHttpRequest && document.execCommand){
        for( var x = '0', elements = document.getElementsByTagName('select'), count = elements.length; x < count; x++) {
          element = elements[x];
          element.style.position = 'relative';
          element.style.top      = '-999em';
        }
      }
      var myDL = me.parentNode.parentNode;
      if ( myDL.className == 'material'){
        if( myDL.getElementsByTagName('input')[0].checked == true) {
          document.getElementById('material-selector').className = 'order-selected';
        }else{
          document.getElementById('material-selector').className = 'order';
        }
      }
      if(myDL.className == 'double'){
        for( var x = 0, elements = myDL.getElementsByTagName('dd'), count = elements.length; x < count; x++  ){
          element = elements[x];
          if( element.className == 'select_top'){
            if( element.getElementsByTagName('input')[0].checked == true) {
              document.getElementById('material-selector-top').className = 'order-selected';
            }else{
              document.getElementById('material-selector-top').className = 'order';
            }
          }
          if( element.className == 'select_bottom'){
            if( element.getElementsByTagName('input')[0].checked == true) {
              document.getElementById('material-selector-bottom').className = 'order-selected';
            }else{
              document.getElementById('material-selector-bottom').className = 'order';
            }
          }
        }
      }
      image_path = me.src;
      thisObject.set_sizeOverlay();
      thisObject.set_popupPos(zoom_1_Box);
      image_path = image_path.replace(/56/,'264');
      
      // Text
      
      var parent_DL = me.parentNode.parentNode;
      
      for ( x = 0, elements = parent_DL.getElementsByTagName('dd'), count = elements.length; x < count; x++ ){
        element = elements[x];
        if( element.className == 'image' ) {
          continue; 
        }
        if( element.className == 'code' ) {
          if( document.getElementById('pattern-selector') ){
            document.getElementById('pattern-selector').href = element.innerHTML;
          }
        }
        if( document.getElementById( 'pro_' + element.className ) ) {
          document.getElementById( 'pro_' + element.className ).innerHTML = element.innerHTML;
        }
      }
      
      document.getElementById('popup_material_image_zoom_1').style.backgroundImage = 'url('+image_path+')';
      if( document.getElementsByTagName('body')[0].id == 'jalousie' ){
        document.getElementById('popup_material_image_zoom_1').style.backgroundRepeat = 'no-repeat';
        document.getElementById('popup_material_image_zoom_1').style.backgroundPosition = 'left top';
      }
      overlay.style.display = 'block';
      zoom_1_Box.style.display = 'block';
      overlay.style.display = 'block';
    }
    
    this.make_zoom_2 = function(  ){
      thisObject.close_zoom_1();
      // IE 6
      if( document.uniqueID && document.compatMode && !window.XMLHttpRequest && document.execCommand){
        for( var x = '0', elements = document.getElementsByTagName('select'), count = elements.length; x < count; x++) {
          element = elements[x];
          element.style.position = 'relative';
          element.style.top      = '-999em';
        }
      }
      zoom_2_Box.style.display = 'block';
      overlay.style.display = 'block';
      thisObject.set_sizeOverlay();
      thisObject.set_popupPos(zoom_2_Box);
      image_path = image_path.replace(/264/,'528');
      zoom_2_content_Box.style.backgroundImage = 'url('+image_path+')';
    }
    
    this.set_popupPos = function ( me ){
      me.style.left = document.getElementById('pageWrapper').offsetLeft + 192 + 'px';
      var pageScroll = getPageScroll();
      pageScroll = pageScroll[1];
      var set_memberBox_top = ( pageScroll > posTop ) ? pageScroll + posTop : posTop;
      me.style.top = set_memberBox_top + 'px';
    }
    
    this.set_sizeOverlay = function ( me ){
      var arrayPageSize = getPageSize();
      overlay.style.height = (arrayPageSize[1] + 'px');
    }
    
    this.close_zoom_1 = function ( me ){
      // IE 6
      if( document.uniqueID && document.compatMode && !window.XMLHttpRequest && document.execCommand){
        for( var x = '0', elements = document.getElementsByTagName('select'), count = elements.length; x < count; x++) {
          element = elements[x];
          element.style.position = 'static';
          element.style.top      = '0em';
        }
      }
      zoom_1_Box.style.display = 'none';
      overlay.style.display = 'none';
    }
    this.close_zoom_2 = function ( me ){
       // IE 6
      if( document.uniqueID && document.compatMode && !window.XMLHttpRequest && document.execCommand){
        for( var x = '0', elements = document.getElementsByTagName('select'), count = elements.length; x < count; x++) {
          element = elements[x];
          element.style.position = 'static';
          element.style.top      = '0em';
        }
      }
      zoom_2_Box.style.display = 'none';
      overlay.style.display = 'none';
    }
    
    this.select_pattern = function ( me ){
      thisObject.close_zoom_1();
      var tmp = me.href.split('/');
      var tmp_str = tmp[ tmp.length -1 ]
      
      if ( document.getElementById('gs_muster_1').value == '' || document.getElementById('gs_muster_1').value.length < 4 ){
        document.getElementById('gs_muster_1').value = tmp_str;
        return -1;
      }
      if ( document.getElementById('gs_muster_2').value == '' || document.getElementById('gs_muster_2').value.length < 4 ){
        document.getElementById('gs_muster_2').value = tmp_str;
        return -1;
      }
      if ( document.getElementById('gs_muster_3').value == '' || document.getElementById('gs_muster_3').value.length < 4 ){
        document.getElementById('gs_muster_3').value = tmp_str;
        return -1;
      }
    }
    
    this.select_material = function ( me ){
      //thisObject.close_zoom_1();
      if (me.className == 'order'){
        me.className = 'order-selected';
        var material_selected = true;
      }
      else{
        me.className = 'order';
        var material_selected = false;
      }
      var tmp_code = document.getElementById('pro_code').innerHTML;
      
      for( var x = 0, elements = document.getElementById('material_list').getElementsByTagName('dd'), count = elements.length; x < count; x++ ){
        element = elements[x];
        if( element.className == 'code' && element.innerHTML == tmp_code ){
          var material_obj = element.parentNode; 
        }
      }
      
      if( me.id == "material-selector"){
        material_obj.getElementsByTagName('input')[0].checked = material_selected;
      }
      if( me.id == "material-selector-top"){
        for( var x = 0, elements = material_obj.getElementsByTagName('dd'), count = elements.length; x < count; x++ ){
          element = elements[x];
          if( element.className == 'select_top'){
            element.getElementsByTagName('input')[0].checked = material_selected;
          }
        }
      }
      
      if( me.id == "material-selector-bottom"){
        for( var x = 0, elements = material_obj.getElementsByTagName('dd'), count = elements.length; x < count; x++ ){
            element = elements[x];
            if( element.className == 'select_bottom'){
              element.getElementsByTagName('input')[0].checked = material_selected;
            }
          }
        }
      }
  }
  
  //----------------------------------------------------------------------------
  
  function do_addon( state ){
    //if(!document.getElementById('hiddenContent') ) return false;
    if( ! state ) {
      var state_addon = get_state_addon('addon');
    }
    else {
      var state_addon = 'action';
    }
    switch (state_addon){
      case 'open':
        document.write('<link href="templates/good-shadow/x_css/open_addon.css" rel="StyleSheet" type="text/css">');
      break;
      case 'close':
        document.write('<link href="templates/good-shadow/x_css/close_addon.css" rel="StyleSheet" type="text/css">');
      break;
      case 'action':
      if (document.getElementById('hiddenContent').offsetHeight <= 0){
        document.getElementById('hiddenContent').style.display = 'block';
        document.getElementById('do-addon-button').className   = 'open';
        save_state_addon('open');
      }else {
        document.getElementById('hiddenContent').style.display = 'none';
        document.getElementById('do-addon-button').className   = 'close';
        save_state_addon('close');
      }
      break;
      default:
        document.write('<link href="templates/good-shadow/x_css/close_addon.css" rel="StyleSheet" type="text/css">');
        break;
    }
  }
  
  function save_state_addon(state) {
    var date = new Date();
    date.setTime(date.getTime()+(7*24*60*60*1000)); 
    var expires = "; expires="+date.toGMTString();
    document.cookie = "addon"+"="+state+expires+"; path=/";
  }
  
  function get_state_addon(c_name) { 
    if (document.cookie.length > 0) { 
      c_start=document.cookie.indexOf(c_name + "=");
      if (c_start!=-1) {
        c_start=c_start + c_name.length+1;
        c_end=document.cookie.indexOf(";",c_start);
        if (c_end==-1) c_end=document.cookie.length;
        return unescape(document.cookie.substring(c_start,c_end));
      }
    } return "";
  }
  
  do_addon();
  
  
  var material_zoom = new obj_material_zoom();
  

  
  
  
  
  
  addLoadEvent( material_zoom.init);
  addLoadEvent( init_inputCheck );
  addLoadEvent( create_popupLinks );

  (function(){ /*Use Object Detection to detect IE6*/ var m = document.uniqueID /*IE*/ && document.compatMode /*>=IE6*/ && !window.XMLHttpRequest /*<=IE6*/ && document.execCommand ; try{ if(!!m){ m("BackgroundImageCache", false, true) /* = IE6 only */ } }catch(oh){}; })();