navigationLoadInProccess = false;
category_products_class_name = "searchresult";

function startLoadNavigationData(){
	
	if(navigationLoadInProccess){
		return false;
	}
	
	navigationLoadInProccess = true;
	
	var overlay = $('advanced-navigation-overlay');
	
	if($$('div.contetright_list').length > 0){
		var element = $$('div.contetright_list')[0];
	}else if($$('div.searchresult').length > 0){
    	var element = $$('div.searchresult')[0];
    }else if($$('div.contetright')){
		var element = $$('div.contetright')[0];
	}else if($$('div.col-main p.note-msg')){
    	var element = $$('div.col-main p.note-msg')[0];
    }else{
    	return;
    }
	
	if(!overlay){
		overlay = $(document.createElement('div'));
		overlay.id = 'advanced-navigation-overlay';
		document.body.appendChild(overlay);
	}
	
	var offsets = element.cumulativeOffset();
	overlay.setStyle({
		'top'	    : offsets[1] + 'px',
		'left'	    : offsets[0] + 'px',
		'width'	    : element.offsetWidth + 'px',
		'height'	: element.offsetHeight + 'px',
		'position'  : 'absolute',
		'display'   : 'block',
		'zIndex'	: '2000' // Value mast be more than any element from content have
	});
	
	var loadinfo = document.createElement('div');
	
	if(loadimagealign == 'bottom'){
	
		loadinfo.innerHTML = gomage_navigation_loadinfo_text+'<img src="'+loadimage+'" alt="" class="align-'+loadimagealign+'"/>';
	
	}else{
		
		loadinfo.innerHTML = '<img src="'+loadimage+'" alt="" class="align-'+loadimagealign+'"/>'+gomage_navigation_loadinfo_text;
		
	}
	
	loadinfo.id = "navigation_loadinfo";
	loadinfo.className = "gan-loadinfo";
	
	document.body.appendChild(loadinfo);
	
	return navigationLoadInProccess;
	
}

function stopLoadNavigationData(){
	
	var overlay = $('advanced-navigation-overlay');
	
	if(overlay){
		overlay.style.display = 'none';
	}
	
	document.body.removeChild($('navigation_loadinfo'));
	
	return navigationLoadInProccess = false;
	
}
	     
function generateUrlWithParams (url, params) {
			
	var query    = {},
		keys     = url.split('?')[1].split('&'),
		key      = '',
		glue     = '',
		strQuery = '',
		i        = -1;
	while (++i < keys.length) {
		key = keys[i].split('=');
		query[key[0]] = key[1];
	}
		
	for (attrname in query) { params[attrname] = query[attrname]; }	

	for (key in params) {
		strQuery += glue + key + '=' + params[key];
		glue = '&';
	}
	if (strQuery != '') {
		url = url.split('?')[0] + '?' + strQuery;
	}
	return url;
}

function submitNavigationForm(form, url, is_ajax) {
	
	
	var from = $(form).down('input.navigation-from');
	var to = $(form).down('input.navigation-to');
	
	var re = /^[0-9]*$/;
	if (!re.test($(from).value))
	{
		alert('Please use only numbers (0-9) in this field.');
		return false;
	}	
	if (!re.test($(to).value))
	{
		alert('Please use only numbers (0-9) in this field.');
		return false;
	}
		
	if ((parseFloat($(from).value) > parseFloat($(to).value)) ||
		 ((parseFloat($(from).value) == 0 && parseFloat($(to).value) == 0)))
	{
		alert('Filter range is invalid.');
		return false;
	}
	
    is_ajax = typeof(is_ajax) != 'undefined' ? is_ajax : true;
    
	var url = url.replace(/&amp;/ig, '&');
	
	var elements = form.elements;
	
	var params = Object.clone(navigationOpenFilters);	
	
	for(var i=0;i< elements.length;i++){
		
		element = elements[i];
		
		switch(element.nodeName){
			
			case 'INPUT': case 'SELECT': case 'TEXTAREA':
				
				if(element.value){
				
					params[element.name] = element.value;
				
				}
				
			break
			
		}
		
	}
	
	if(!url){
		url = form.action;
	}
	
	if (!is_ajax) {
		setLocation(generateUrlWithParams(url, params));
	} else if(startLoadNavigationData()){
	
	var request = new Ajax.Request(url,
	  {
	    method:'GET',
	    parameters:params,
	    onSuccess: function(transport){
	    	
	    	var response = eval('('+(transport.responseText || false)+')');
	
	    replaceNavigationBlock(response.navigation);
			replaceProductsBlock(response.product_list);
			replaceLeftRightNavigationBlocks('gan-left-nav-main-container', response.navigation_left);
			replaceLeftRightNavigationBlocks('gan-right-nav-main-container', response.navigation_right);
			
			if(response.eval_js){
				eval(response.eval_js);
				navigation_eval_js = response.eval_js;
			}
						
			stopLoadNavigationData();
			
	    },
	    onFailure: function(){
	    	stopLoadNavigationData();
	    }
	  });
	  
	}
	
}

function setNavigationUrl(url){
	is_ajax = typeof(is_ajax) != 'undefined' ? is_ajax : true;
	var url = url.replace(/&amp;/ig, '&');
  
	if(startLoadNavigationData()){ 		
	var request = new Ajax.Request(url,
	  {
	    method:'get',
	    parameters:navigationOpenFilters,
	    onSuccess: function(transport){  
	    	//set the hash in url
		    	var baseurl = $("baseurl").value;
	      	var urlhash = url.replace(baseurl, "");
	      	
	      	//alert(unescape(urlhash));
	      	//alert(urlhash.split("&").length - 1);
	      	if(!loadedcurcat){
	      		window.location.hash = "#"+unescape(urlhash);
	      		jQuery("#prevurlhash").attr("cval", unescape(urlhash));
	      	}else{
	      		jQuery("#prevurlhash").attr("cval", "");
	      	}
	      	//alert("eshash "+unescape(urlhash));
	    	
	    	
	    	var response = eval('('+(transport.responseText || false)+')');
	    	replaceNavigationBlock(response.navigation);
  			replaceProductsBlock(response.product_list);
  			
        replaceTitle(response.nav_styles);
  			replaceLeftRightNavigationBlocks('gan-left-nav-main-container', response.navigation_left);
  			replaceLeftRightNavigationBlocks('gan-right-nav-main-container', response.navigation_right);
   //   Cufon.replace('.centerchr h3, .help_view h4, .step-title h4, .categorybox h4, .colorbox h4, .hottestproduct h1, .bottomcontent h1, .signupbox h4, .column01 h4, .feedbackarea h3, .producttitleleft h1, .carttitleleft h4, .getcupon h4, .categorybox h4, .colorbox h4, .hottestproduct h1, .bottomcontent h1, .signupbox h4, .column01 h4, .feedbackarea h3, .producttitleleft h1, .helpbox h2, .availableitem h4, .availableitem label, .availableitem h5, .sizelist h3, .previouslyviewed h2, .returningcustomer h4, .billinginfo h4, .paymentinfirmation h4, .returningcustomerleft h4, .returningcustomerleft h3, .returningcustomerright h4, .returningcustomerright h3, .returningcustomer_head h4, .returningcustomer_head h3, .categorybox h4, .colorbox h4, .hottestproduct h1, .bottomcontent h1, .signupbox h4, .column01 h4, .feedbackarea h3, .ticketout h1,.categorybox h4, .colorbox h4, .hottestproduct h1, .bottomcontent h1, .signupbox h4, .column01 h4, .feedbackarea h3,  .ticketout h1, .interiorpopup h4, .interiorarearight h4, .cooltrip h3');
  //    Cufon.replace('.producttitledetails h1, .help_checkout h4, .availableitem h5', { fontFamily: 'ChunkFive' });

      new Goodahead.QuickShop();



      if(response.eval_js){
				eval(response.eval_js);
				navigation_eval_js = response.eval_js;
			}
			
			stopLoadNavigationData();
	    },
	    onFailure: function(){
	    	setLocation(url); //trying redirect to url
	    }
	  });
	  
	}
	
}

function replaceTitle(content){       
	var oldVal=$$('.producttitleleft h1')[0].innerHTML;

  	if(content.length>0){
		var navTitle = content.join('<span class="left">, </span>');
   		var oldVal=$$('.producttitleleft h1')[0].innerHTML;
   		
   		oldVal='<span class="cat-label">'+oldVal+':</span>';

		window.leftnavajax = oldVal+navTitle;

    	//$$('.producttitleleft h1')[0].update(oldVal+navTitle);
  } else {
  		window.leftnavajax = oldVal;
  }
}

function goToAboutBlock(styleBlock){
  //document.getElementById('aboutstyle').scrollIntoView();
  var target = jQuery('#aboutstyle');
        if (target.length)
        {
            var top = target.offset().top;
            jQuery('html,body').animate({scrollTop: top}, 1000);
            
        }
    styleBlock=styleBlock.replace(' ','-');
  if(window.activeStyle!=styleBlock){
    var blockHeight=jQuery('.about-block-content').height;
     $$('.about-block-content')[0].update('<div class="preloader"></div>');
     jQuery('.about-block-content').css('height',blockHeight);
      url=$('select-style-box').readAttribute('url');
     var request = new Ajax.Request(url,
	  {
	    method:'get',
	    parameters:'style='+styleBlock,
	    onSuccess: function(transport){ 
        $$('.about-block-content')[0].update(transport.responseText); 
        Cufon.replace('.intro-header', { fontFamily: 'ChunkFive' });
            $$('.tab-content').each(
              function(tab){
                tab.hide();
              }     
            );
            $('tabcontent1').show(); 
            $$('.tab-header').each(function(tab){
            tab.removeClassName('openTabHeader');
                  tab.observe('click', function(event){
                   $$('.tab-header').each(function(item){
                    item.removeClassName('openTabHeader');
                  });
                  var header=event.element();
                    $(event.element()).addClassName('openTabHeader');
                    var index=header.id.replace('tabheader','');
                     $$('.tab-content').each(function(tab){
                      tab.hide();
                    });
                   $('tabcontent'+index).show();
                });
            });
          $('tabheader1').addClassName('openTabHeader'); 
      }
    });

    
    var options = $$('select#select-style-box option');
    var len = options.length;
    for (var i = 0; i < len; i++) {
        if(options[i].value==styleBlock||options[i].text==styleBlock){
          options[i].selected = true; 
        }
    }

    window.activeStyle=styleBlock;
  }
  return false;
}


function changeAboutBlock(){
    var styleBlock=$('select-style-box').value;
    styleBlock=styleBlock.replace(' ','-');
    var blockHeight=jQuery('.about-block-content').height;
     $$('.about-block-content')[0].update('<div class="preloader"></div>');
     jQuery('.about-block-content').css('height',blockHeight);
      url=$('select-style-box').readAttribute('url');
     var request = new Ajax.Request(url,
	  {
	    method:'get',
	    parameters:'style='+styleBlock,
	    onSuccess: function(transport){ 
        $$('.about-block-content')[0].update(transport.responseText); 
        Cufon.replace('.intro-header', { fontFamily: 'ChunkFive' });
            $$('.tab-content').each(
              function(tab){
                tab.hide();
              }     
            );
            $('tabcontent1').show(); 
            $$('.tab-header').each(function(tab){
            tab.removeClassName('openTabHeader');
                  tab.observe('click', function(event){
                   $$('.tab-header').each(function(item){
                    item.removeClassName('openTabHeader');
                  });
                  var header=event.element();
                    $(event.element()).addClassName('openTabHeader');
                    var index=header.id.replace('tabheader','');
                     $$('.tab-content').each(function(tab){
                      tab.hide();
                    });
                   $('tabcontent'+index).show();
                });
            });
          $('tabheader1').addClassName('openTabHeader'); 
      }
    });
    window.activeStyle=styleBlock;
  return false;
}


function replaceProductsBlock(content){
	var replaced_contetright = 0;
	var replaced_contetright_list = 0;
	
	if($$('div.contetright_list').length > 0){
		replaced_contetright_list = 1;
		element = $$('div.contetright_list')[0];
	}else if($$('div.contetright').length > 0){
		replaced_contetright = 1;
		element = $$('div.contetright')[0];
	}else if($$('div.searchresult').length > 0){

    	element = $$('div.searchresult')[0];

    }else if($$('div.col-main p.note-msg').length > 0){

    	element = $$('div.col-main p.note-msg')[0];

    }else{

    	return;
    }



    if (content && content.toElement){
    	content = content.toElement();

    }else if (!Object.isElement(content)) {
      content = Object.toHTML(content);
      var tempElement = document.createElement('div');
      Element.extend(tempElement);
      
      content.evalScripts.bind(content).defer();
      content = content.stripScripts();
      tempElement.innerHTML = content;

      el =  getElementsByClassName('contetright_list', tempElement);

      if (el.length > 0)
      {
         content = el[0];
      }
	  else
      {
		 el = getElementsByClassName('searchresult', tempElement);
		 if (el.length > 0)
		 {
			 content = el[0];
		 }else{
			 el = getElementsByClassName('note-msg', tempElement);
			 if (el.length > 0)
			 {
				content = el[0];
			 }
			 else
			 {
				return;
			 }
		 }
      }
    }

    Element.extend(content);
	if(replaced_contetright == 1){
		content.addClassName("contetright");
		content.removeClassName("category-products");
		replaced_contetright = 0;
	}else if(replaced_contetright_list == 1){
		content.addClassName("contetright_list");
		content.removeClassName("category-products");
		replaced_contetright_list = 0;
	}
    element.parentNode.replaceChild(content, element);
}



function getElementsByClassName(classname, node) {


      var a = [];

      var re = new RegExp('\\b' + classname + '\\b');

      var els = node.getElementsByTagName("*");

      for(var i=0,j=els.length; i<j; i++){

             if(re.test(els[i].className))a.push(els[i]);
      } 
      return a;

}


function replaceNavigationBlock(content){
	
	
    var element = $$('div.block-layered-nav-gomage')[0];
	
    if (content && content.toElement){
    	content = content.toElement();
    	
    }else if (!Object.isElement(content)) {
      content = Object.toHTML(content);
	  
      var tempElement = document.createElement('div');
      Element.extend(tempElement);
      Element.extend(content);
      content.evalScripts.bind(content).defer();
      tempElement.innerHTML = content;
      
      content = tempElement.down(".block-layered-nav-gomage");
      
    }
	
    element.parentNode.replaceChild(content, element);    
}


function replaceLeftRightNavigationBlocks(element, content)
{
	var element = $(element);
	
	if (content && element)
	{	
	    if (content && content.toElement){
		    	
		    	content = content.toElement();
		    	
		}else if (!Object.isElement(content)) {
		    	
		      content = Object.toHTML(content);
		      
		      var tempElement = document.createElement('div');
		      content.evalScripts.bind(content).defer();
		      tempElement.innerHTML = content;
			  
		      content = tempElement.firstChild;
		      
		 }	    
		 element.parentNode.replaceChild(content, element);
	} 
}


function initSlider(code, min, max, curr_min, curr_max, url, is_ajax){
	
	if(min == max){
		max++;
		if(curr_min == curr_max){
			curr_max++;
		}
		
	}
	var handles = [code+'-handle-from', code+'-handle-to'];
	
	var s1 = new Control.Slider(handles,code+'-track', {axis:'horizontal',alignY:0, range: $R(min,max), sliderValue: [curr_min, curr_max],restricted: true,  spans: [code+"-square_slider_span"]});
	s1.options.onChange = function(value){
					
			if (isNaN(value[0]) || isNaN(value[1]))
		    {
		    	return false;
		    }

			$(code+'-filter-form').elements[code+'_from'].value = parseInt(value[0]);
			$(code+'-filter-form').elements[code+'_to'].value = parseInt(value[1]);			
			
			if(min == value[0] && max == value[1]){
				
				//setNavigationUrl(url);
				submitNavigationForm($(code+'-filter-form'), url, is_ajax);

			}else{
				
				submitNavigationForm($(code+'-filter-form'), url, is_ajax);
				
			}
			
			var htmlvalue = parseInt(value[0]) + ' - ' + parseInt(value[1]);
			
			if(value[0] >= 0 && value[1] >= 0){
			
			$(code+'-value-from').innerHTML = parseInt(1*value[0]);
			$(code+'-value-to').innerHTML = parseInt(1*value[1]);
			
			}
			
	        $(code+'-value').innerHTML = htmlvalue;
	        
	};
	
	
	
	s1.options.onSlide = function(value){
					    
		    if (isNaN(value[0]) || isNaN(value[1]))
		    {
		    	return false;
		    }	
		
			var htmlvalue = parseInt(value[0]) + ' - ' + parseInt(value[1]);
			
			
			if(value[0] >= 0 && value[1] >= 0){
			$(code+'-value-from').innerHTML = parseInt(1*value[0]);
			$(code+'-value-to').innerHTML = parseInt(1*value[1]);
			}
	        $(code+'-value').innerHTML = htmlvalue;
	};
	
	s1.draw = function(event)
	{
		var pointer = [Event.pointerX(event), Event.pointerY(event)];
	    var offsets = Position.cumulativeOffset(this.track);
	    pointer[0] -= this.offsetX + offsets[0];
	    pointer[1] -= this.offsetY + offsets[1];
	    this.event = event;
	        
	    var value = this.translateToValue( this.isVertical() ? pointer[1] : pointer[0] );
	    
	    if (isNaN(value)) return false;
	    
	    this.setValue(value);
	    
	    if (this.initialized && this.options.onSlide)
	      this.options.onSlide(this.values.length>1 ? this.values : this.value, this);
	};
	
	
	var htmlvalue = parseInt(s1.values[0]) + ' - ' + parseInt(s1.values[1]);
	
	$(code+'-value-from').innerHTML = parseInt(s1.values[0]);
	$(code+'-value-to').innerHTML = parseInt(s1.values[1]);
	
	$(code+'-value').innerHTML = htmlvalue;
	
	
	
	
}

function changeThumbs(prodid,counter){ console.log(prodid+' counter'+counter);
 var thumb=$$('#product-popup-'+prodid+' .thumb'+counter)[0];
 var url=thumb.readAttribute('url'); 
 $$('#product-popup-'+prodid+' .prodimage')[0].src = url;
 return false;
}

