var eventsArr=new Array();

function highlightErrors( form, errors ){
	var errors = errors.split('+++');
	errors.each(function(el){
		if( $(form).getElement('#'+el) ){
			$(form).getElement('#'+el).addClass('error');
			$(form).getElement('#'+el).addEvent('focus', function(){this.removeClass('error');});
		}
	});
}

function showGlobalMessage( globalMessage ){
	if( globalMessage ){
		showPopUp();
	}
}

function escapeAmp( str ){
	str = str.replace( /&/gi,'%26' );
	str = str.replace( /\n/gi,'%0A' );
	return str;
}

function new_captcha( captchaId ) {  
	var c_currentTime = new Date();  
	var c_miliseconds = c_currentTime.getTime();
	if( $( captchaId ) ) $( captchaId ).setProperty( 'src', base+"/helpers/refresh_captcha/"+c_miliseconds+"/" ); 
}	

function resizeOverlay(){
	var bodySize = $(document.body).getScrollSize();
	var plashkaPos = $("plashka").getCoordinates();
	screenTreshold = plashkaPos.top + plashkaPos.height + 30;
	if( bodySize.y <= screenTreshold ){
		$("overlay").setStyle("height", screenTreshold);
		$("plashka").setStyle("position","absolute");
	} 
	else{
		$("overlay").setStyle("height", bodySize.y);
		$("plashka").setStyle("position","absolute");
	}
	window.scrollTo(0, 0);
}					
			
function showPopUp(){
	var plashka = $("plashka");
	if(!plashka){
		plashka = new Element("div", {"id":"plashka"});
		$(document.body).appendChild(plashka);	
		/* hide using opacity */
		plashka.setStyles({
			opacity:0,
			display:'block'
		});
	}
	
	var overlay = $("overlay");
	if(!overlay){
		overlay = new Element("div", {"id":"overlay"});
		var bodySize = $(document.body).getScrollSize();
		overlay.setStyle('height', bodySize.y);
		$(document.body).appendChild(overlay);
		window.scrollTo(0, 0);
	}	

	plashka.innerHTML='<div class="panel" style="width:550px;float:left;"><div id="plash_top" class="plash_top"><div id="plash_close" class="tool tool-close"></div></div><div id="plash_cont"><div class="plash_cont"><p id="loader">'+loading+'</p></div></div></div>';
		
	/* hiders */
	$("plash_close").addEvent('click',closePopUp);
	window.addEvent('keypress',function(e) { if(e.key == 'esc') { closePopUp(); } });
	$(document.body).addEvent('click',function(e) { 
		if( !e.target.getParent('#plashka')) { 
			closePopUp(); 
		} 
	});
	
	plashka.fade('in');
	
}
		
		
function closePopUp(e){
	if(e){
		var e = new Event(e);
		e.stop();
	}
	if( $('plashka') ) $('plashka').fade('out');
	if( $('overlay') ) $('overlay').dispose();
}
		

function addPanelTitle( panelTitle ){
	var title = new Element('span', {
		'class': 'panel-header-text',
		'html': panelTitle,
		'id': 'panel-header-title'
	});
	$('plash_top').appendChild(title);
}


function updateCart(){
	var act = this.get('class');
	var PID = this.id.split('-');
	PID = PID[1];
	data = 'act='+act+'&PID='+PID;
	new Request({
		url: base+'/cart/',
		method: 'post',
		evalScripts: true,
		data: data,
		onSuccess: function(response){
			if( response ){
				response = response.split('***');
				$('cart').set( 'html', response[0] );
				$('plw').set( 'html', response[1] );
				addAllEvents();
			}
		}
	}).send();
}

function addToCart(){
	var pINFO = this.id.split('-');
	this.set( 'html', aic );
	PID = pINFO[1];
	data = 'act=add&PID='+PID;
	if( pINFO[2] ){
		CID = pINFO[2];
		data = data+'&CID='+CID
	}
	
	new Request({
		url: base+'/cart/',
		method: 'post',
		evalScripts: true,
		data: data,
		onSuccess: function(response){
			if( response ){
				response = response.split('***');
				$('cart').removeClass( 'loading2' );
				$('cart').set( 'html', response[0] );
				if( Browser.ie && Browser.version == '6' ){
					return false;
				}
				showPopUp();
				$('plash_cont').set( 'html', response[1] );
			}
		},
		onRequest: function(){
			$('cart').set( 'html', '');
			$('cart').addClass( 'loading2' );
		}
	}).send();
}

function reloadFilters( data ){
		
	//alert(data);
	
	var url = action;
	var inputsArr = $$('ul.filter li');
	
					
	inputsArr.each(function(el){
		if( el.hasClass('chkd') || el.hasClass('dsbld2') ){
			fInfo = el.id.split('-');
			fType = fInfo[0];
			fId = fInfo[1];
			if( fId != 'all' && ( fType == 'BRID' || fType == 'product_type' || fType == 'CID' ) ) data += fType+'[]='+escapeAmp( fId )+'&';
			else if( fId != 'all' ) data += fType+'='+escapeAmp( fId )+'&';
		}
	});
	
					
	if( Browser.ie && Browser.version >= 8 ){
		window.location.hash = data;
	}
	else{
		var myRequest = new Request({
			url: url, 
			method: 'post',
			evalScripts: true,
			data: data,
			onSuccess: function(response){
				response = response.split('***');
				$('loading-ovrl').removeClass( 'loading' );
				$('plw').set( 'html', response[0] );
				$('fw').set( 'html', response[1] );
				
				if(history.pushState){
					var currentTime = new Date();
					if(history.pushState) history.pushState({testdata:data}, "filters page", "?"+currentTime.getTime());
				}
							 
				addAllEvents();
			},
			onRequest: function(){
				$('loading-ovrl').addClass( 'loading' );
				window.scrollTo(0, 0);
			}
		}).send();
	}
}

function checkCaptcha(){
	if( $("refresh_captcha" ) ){
		$("refresh_captcha").addEvent("click",function(e){
			e.stop();
			var token = $("token").value;
			var myRequest = new Request({
				url: base+"/helpers/refresh_captcha/", 
				method: "post",
				data: "token="+token,
				onSuccess: function(response){
					var c_currentTime = new Date();  
					var c_miliseconds = c_currentTime.getTime();
					$("captcha").src = response+"?"+c_miliseconds;
				}
			}).send();
		});
	}	
}



var timer_show, timer_hide;
var menu_opening, menu_opened;

function domReadyEvents(){
		
	if( $('col3').getElement('#top-products') ){	
		new Request({
			url: base+'/helpers/get_top_products/'+num_top_products+'/',
			onSuccess: function(response){
				$('col3').getElement('#top-products').removeClass( 'loading3' ).set('html', response );

				var product_ticker = new ticker(
					'product-feed',{
					speed:2000,
					delay:2000,
					duration:1000,
					direction:'vertical'
				});
				
			},
			onRequest: function(){
				$('col3').getElement('#top-products').set('html', '' ).addClass( 'loading3' );
			}
		}).send();
	}
	
	
	if( document.getElement('#sticky-column') && ( !Browser.ie || ( Browser.ie && Browser.version > 7 ) ) ){
		$('sticky-column').set('morph', {
			duration:300,
			link:'cancel'
		});		
	}
	
}

function addAllEvents(){
	
	if( eventsArr ){
		eventsArr.each(function(el){
			eval(el);
		});
		eventsArr.empty();
	}	
	
	$('topnav').getElements('li.topnav-1').removeEvents('mouseenter');
	$('topnav').getElements('li.topnav-1').removeEvents('mouseleave');
		
	$('topnav').getElements('li.topnav-1').addEvent('mouseenter',function(){
	
		var topEl = this;	
		
		if(menu_opening){
			clearTimeout(timer_show);
			menu_opening = false;
		}
		else if( menu_opened ){
			if( menu_opened != topEl ){
				menu_opened.getElement('div.sub').setStyles({
					 display:'none',
					 visablity:'hidden'
				});
			}
			else{
				clearTimeout(timer_hide);
			}
			
			topEl.getElement('div.sub').setStyles({
			    display:'block',
				visablity:'visible'
			});
			menu_opened = topEl;
		}
		else{
			
			menu_opening = topEl;
			
			timer_show = (function(){
				topEl.getElement('div.sub').setStyles({
				    display:'block',
					visablity:'visible'
				});
								
				menu_opening = false;
				menu_opened = topEl; 
			
			}).delay(300);
		
		}		

	});
	
	$('topnav').getElements('li.topnav-1').addEvent('mouseleave',function(){
			
		var topEl = this;
		
		if( menu_opening && menu_opening == topEl ){
			clearTimeout(timer_show);
			topEl.getElement('div.sub').setStyles({
			    display:'none',
				visablity:'hidden'
			});
			menu_opening = false;
		}
		else if( menu_opening && menu_opened && menu_opened == topEl ){
			topEl.getElement('div.sub').setStyles({
			    display:'none',
				visablity:'hidden'
			});
			menu_opened = false; 
		}
		else{
			timer_hide = (function(){
				topEl.getElement('div.sub').setStyles({
				    display:'none',
					visablity:'hidden'
				});
				if(menu_opened == topEl) menu_opened = false;
			}).delay(300);
		}
		
	});
	
	$$('div.atc').addEvent( 'click', addToCart );
	
	$$('span.inc').addEvent( 'click', updateCart );
	$$('span.dec').addEvent( 'click', updateCart );
	$$('span.del').addEvent( 'click', updateCart );
	
	if( $('q') ){
		$('q').addEvent( 'focus', function(){
			$$('span.icon-search').addClass('focused');
		});	
		
		$('q').addEvent( 'blur', function(){
			$$('span.icon-search').removeClass('focused');
		});	
	}
	
	$$('span.upd').addEvent(
		'click', function(e){
			data = 'act=upd';
			$$('input.productCount').each(function(el){
				PID = el.name.split('-');
				qnt = el.value;
				PID = PID[1];
				data += '&PID[]='+PID;
				data += '&qnt[]='+qnt;
			});
			new Request({
				url: base+'/cart/',
				method: 'post',
				evalScripts: true,
				data: data,
				onSuccess: function(response){
					if( response ){
						response = response.split('***');
						$('cart').set( 'html', response[0] );
						$('plw').set( 'html', response[1] );
						addAllEvents();
					}
				}
			}).send();
		}
	);
	
	$$('li.sort').addEvent(
		'click', function(e){
			if( this.id == 'asc' || this.id == 'desc' ) data = 'ajax_update=1&sortby='+sortby+'&sortdir='+this.id+'&';
			else data = 'ajax_update=1&sortby='+this.id+'&';
			if( typeof search_item != 'undefined' ) data += 'q='+search_item+'&';
			reloadFilters( data );			
		}
	);	
	

	$$('ul.filter li[class!=dsbld2]').addEvent(
		'click', function(e){
			if( this.hasClass('dsbld') ) return false;
			
			fInfo = this.id.split('-');
			fType = fInfo[0];
			fId = fInfo[1];
						
			if( !this.hasClass('chkd') ){
				if( fId != 'all' && $(fType+'-all') && $(fType+'-all').hasClass('chkd') ){
					$(fType+'-all').removeClass('chkd');
					if( fType != 'BRID' && fType != 'product_type' ) $$('li[id^='+fType+']').removeClass('chkd');
				}
				else if( fId != 'all' ){
					if( fType != 'BRID' && fType != 'product_type' ) $$('li[id^='+fType+']').removeClass('chkd');
				}
				else if( fId == 'all' ){
					$$('li[id^='+fType+']').removeClass('chkd');
				}
				
				this.addClass( 'chkd' );
			}
			else{
				this.removeClass( 'chkd' );
			}
			
			data = 'ajax_update=1&sortdir='+sortdir+'&sortby='+sortby+'&';
			if( typeof search_item != 'undefined' ) data += 'q='+search_item+'&';
			reloadFilters(data);
					
		}
	);				
	
}

