/**
 * @author Balint Zoltan
 */

function in_array (needle, haystack, argStrict) {
    var key = '', strict = !!argStrict;
 
    if (strict) {
        for (key in haystack) {
            if (haystack[key] === needle) {
                return true;
            }
        }
    } else {
        for (key in haystack) {
            if (haystack[key] == needle) {
                return true;
            }
        }
    }
 
    return false;
}

/*!
	Slimbox v1.8 - The ultimate lightweight Lightbox clone
	(c) 2007-2011 Christophe Beyls <http://www.digitalia.be>
	MIT-style license.
*/
var Slimbox=(function(){var F=window,n=Browser.ie6,u,g,G=-1,o,w,E,v,y,M,s,m={},t=new Image(),K=new Image(),I,a,h,q,J,e,H,c,A,L,x,i,d,C;F.addEvent("domready",function(){$(document.body).adopt($$(I=new Element("div#lbOverlay",{events:{click:D}}),a=new Element("div#lbCenter"),H=new Element("div#lbBottomContainer")).setStyle("display","none"));h=new Element("div#lbImage").inject(a).adopt(q=new Element("div",{styles:{position:"relative"}}).adopt(J=new Element("a#lbPrevLink[href=#]",{events:{click:B}}),e=new Element("a#lbNextLink[href=#]",{events:{click:f}})));c=new Element("div#lbBottom").inject(H).adopt(new Element("a#lbCloseLink[href=#]",{events:{click:D}}),A=new Element("div#lbCaption"),L=new Element("div#lbNumber"),new Element("div",{styles:{clear:"both"}}))});function z(){var N=F.getScroll(),O=F.getSize();$$(a,H).setStyle("left",N.x+(O.x/2));if(v){I.setStyles({left:N.x,top:N.y,width:O.x,height:O.y})}}function l(N){["object",n?"select":"embed"].forEach(function(P){Array.forEach(document.getElementsByTagName(P),function(Q){if(N){Q._slimbox=Q.style.visibility}Q.style.visibility=N?"hidden":Q._slimbox})});I.style.display=N?"":"none";var O=N?"addEvent":"removeEvent";F[O]("scroll",z)[O]("resize",z);document[O]("keydown",p)}function p(O){var N=O.code;return u.closeKeys.contains(N)?D():u.nextKeys.contains(N)?f():u.previousKeys.contains(N)?B():false}function B(){return b(w)}function f(){return b(E)}function b(N){if(N>=0){G=N;o=g[N][0];w=(G||(u.loop?g.length:0))-1;E=((G+1)%g.length)||(u.loop?0:-1);r();a.className="lbLoading";m=new Image();m.onload=k;m.src=o}return false}function k(){a.className="";d.set(0);h.setStyles({backgroundImage:"url("+o+")",display:""});q.setStyle("width",m.width);$$(q,J,e).setStyle("height",m.height);A.set("html",g[G][1]||"");L.set("html",(((g.length>1)&&u.counterText)||"").replace(/{x}/,G+1).replace(/{y}/,g.length));if(w>=0){t.src=g[w][0]}if(E>=0){K.src=g[E][0]}M=h.offsetWidth;s=h.offsetHeight;var P=Math.max(0,y-(s/2)),N=0,O;if(a.offsetHeight!=s){N=i.start({height:s,top:P})}if(a.offsetWidth!=M){N=i.start({width:M,marginLeft:-M/2})}O=function(){H.setStyles({width:M,top:P+s,marginLeft:-M/2,visibility:"hidden",display:""});d.start(1)};if(N){i.chain(O)}else{O()}}function j(){if(w>=0){J.style.display=""}if(E>=0){e.style.display=""}C.set(-c.offsetHeight).start(0);H.style.visibility=""}function r(){m.onload=null;m.src=t.src=K.src=o;i.cancel();d.cancel();C.cancel();$$(J,e,h,H).setStyle("display","none")}function D(){if(G>=0){r();G=w=E=-1;a.style.display="none";x.cancel().chain(l).start(0)}return false}Element.implement({slimbox:function(N,O){$$(this).slimbox(N,O);return this}});Elements.implement({slimbox:function(N,Q,P){Q=Q||function(R){return[R.href,R.title]};P=P||function(){return true};var O=this;O.removeEvents("click").addEvent("click",function(){var R=O.filter(P,this);return Slimbox.open(R.map(Q),R.indexOf(this),N)});return O}});return{open:function(P,O,N){u=Object.append({loop:false,overlayOpacity:0.8,overlayFadeDuration:400,resizeDuration:400,resizeTransition:false,initialWidth:250,initialHeight:250,imageFadeDuration:400,captionAnimationDuration:400,counterText:"Image {x} of {y}",closeKeys:[27,88,67],previousKeys:[37,80],nextKeys:[39,78]},N||{});x=new Fx.Tween(I,{property:"opacity",duration:u.overlayFadeDuration});i=new Fx.Morph(a,Object.append({duration:u.resizeDuration,link:"chain"},u.resizeTransition?{transition:u.resizeTransition}:{}));d=new Fx.Tween(h,{property:"opacity",duration:u.imageFadeDuration,onComplete:j});C=new Fx.Tween(c,{property:"margin-top",duration:u.captionAnimationDuration});if(typeof P=="string"){P=[[P,O]];O=0}y=F.getScrollTop()+(F.getHeight()/2);M=u.initialWidth;s=u.initialHeight;a.setStyles({top:Math.max(0,y-(s/2)),width:M,height:s,marginLeft:-M/2,display:""});v=n||(I.currentStyle&&(I.currentStyle.position!="fixed"));if(v){I.style.position="absolute"}x.set(0).start(u.overlayOpacity);z();l(1);g=P;u.loop=u.loop&&(g.length>1);return b(O)}}})();

// AUTOLOAD CODE BLOCK (MAY BE CHANGED OR REMOVED)
Slimbox.scanPage = function() {
	$$(document.links).filter(function(el) {
		if (el.rel && el.rel.test(/^nospam/i)){
			var temp = el.innerHTML.decodeMail();
			el.setAttribute('href','mailto:' + temp);
			el.innerHTML = temp;
		}
		//		new Tips('.alphalist a');
		if (el.className) {
			if (el.className.test(/^collapsehandle$/i)) {
				el.controlChild = el.getParent().getNext();
				if (el.controlChild.nodeName.test(/table/i)) {
				// --> UNCOMMENT TO SET DEFAULT CLOSED STATE (grouped specs)
					//el.controlChild.removeClass('collapsable');
					//el.controlChild.addClass('col_closed');
					//el.addClass('closed')
				// <-- END UNCOMMENT
				} else {
					el.controlChild = false;
				}
				el.addEvent('click', function(e){
					if (this.controlChild) {
						if (this.controlChild.hasClass('collapsable')) {
							this.controlChild.removeClass('collapsable');
							this.controlChild.addClass('col_closed');
							this.addClass('closed');
						}
						else {
							this.controlChild.removeClass('col_closed');
							this.controlChild.addClass('collapsable');
							this.removeClass('closed');
						}
					}
					return false;
				});
							
			}// adauga _target="blank"
			else if (el.className.test(/external/i)){
				el.setAttribute('target','_blank');
			}
			else if (el.className.test(/inactive/i)){
				el.onclick = function(){
					return false;
				}
			}

		}
	});
	$$("a[rel^=lightbox]").slimbox({/* Put custom options here */}, null, function(el) {
		return (this == el) || ((this.rel.length > 8) && (this.rel == el.rel));
	});
};

window.addEvent("domready",function(){
  if (!/android|iphone|ipod|series60|symbian|windows ce|blackberry/i.test(navigator.userAgent)) {
    Slimbox.scanPage();
  }
	// 
	//SearchForm.Init();
	//SearchForm.initReset();
	RegistrationForm.Init();
	Tabber.Init();
	ProductFilter.Init();
	ConfirmBox.Init();
	// disabled , doesn't make any fucking sens
	//InfoBox.scanPage();
	
	$$('.scroller.horizontal').filter(function(el){
		new TScroller(el,{ItemsPerScroll:4,ScrollSpeed:500,DisplayedItems:4,ItemDimension:160,PageInterval:2200});
	})
	$$('.scroller.vertical').filter(function(el){
		new TScroller(el,{ItemsPerScroll:9,DisplayedItems:9,MouseItemsPerScroll:5});
	})
	
});

// String Reverse extension
String.prototype.Reverse = function(){
	var retval = '';
	var len = this.length;
	while (len>0){
		retval+=this.substring(len-1,len);
		len--;
	}
	return retval;
}
// reversed email decoder
String.prototype.decodeMail = function(){
	var retval = this.Reverse();
	retval = retval.replace(/\]dot\[/gi,'.');
	retval = retval.replace(/\]at\[/i,'@');
	return retval;
}


// Registration Form fields
var RegistrationForm={};
RegistrationForm.Init = function(){
	$$('.toggler').filter(function(el){
		var toToggle = $('toggle_'+el.id);
		el.slider = new Fx.Slide(toToggle);
		if (!el.checked)
			el.slider.hide();
		el.addEvent('click',function(e){
			if (el.id=='rdoPF') $('reg_lbl_name').set('text','Nume si prenume:');
			else if (el.id=='rdoPJ') $('reg_lbl_name').set('text','Nume firma:');
			$$('.toggler').filter(function(el){
				if (el != this) {
					el.slider.hide();
				}
			});
			this.slider.show();
		});
	});
}

// Search form ajax filter
var SearchForm = {
	mainCategoryID : 0,
	subCategoryID : 0,
	brandID : 0,
	isReset : false
};
SearchForm.Data = {};

SearchForm.initReset = function(){
	$('search_reset').addEvent('click', function(){
		$('filter_currency').selectedIndex=0;
		$('filter_price_min').value='0';
		$('filter_price_max').value='0';
		$('filter_text').value='';
		showload = new Array('container_brand', 'container_sub_category', 'container_main_category');
		SearchForm.mainCategoryID = 0;
		SearchForm.subCategoryID = 0;
		SearchForm.brandID = 0;
		SearchForm.SendFilter(showload);
		SearchForm.isReset = true;
		return false;
	});
}

SearchForm.Init = function(){
	$('filter_main_category').addEvent('change',function(){
		showload = new Array('container_brand','container_sub_category');
		SearchForm.mainCategoryID = this.value;
		SearchForm.SendFilter(showload);
		//$('info').set('text',$('info').get('text')+' | maincat ');
	})
	$('filter_sub_category').addEvent('change',function(){
		showload = new Array('container_main_category','container_brand');
		SearchForm.subCategoryID = this.value;
		SearchForm.SendFilter(showload);
		//$('info').set('text',$('info').get('text')+' | subcat ');
	})
	$('filter_brand').addEvent('change',function(){
		showload = new Array('container_main_category','container_sub_category');
		SearchForm.brandID = this.value;
		SearchForm.SendFilter(showload);
		//$('info').set('text',$('info').get('text')+' | brand ');
	})
}

SearchForm.SendFilter = function(showload){
		//$('info').set('text',$('info').get('text')+' | INIT :: ');
		new Request.HTML({
			method: 'post',
			url: '/ajax_request.php',
			data: {
					'search_main_category_filter'	:SearchForm.mainCategoryID,
					'search_sub_category_filter'	:SearchForm.subCategoryID,
					'search_brand_filter'			:SearchForm.brandID,
					'context'						:'search_form'
			},
			onRequest: function() {
				//$('info').set('text',$('info').get('text')+' | sent');
				for (var i=0;i<showload.length;i++){
					$(showload[i]).addClass('loading');
					$(showload[i]).innerHTML='';
				}
			},
			update: $('search_filters'),
			onComplete: function(response) {
				for (var i=0;i<showload.length;i++){
					$(showload[i]).removeClass('loading');
				}
				//$('info').set('text',$('info').get('text')+' | loaded \r\n');
				SearchForm.Init();
			}
		}).send();	
}

// TABS
var MultiFilter = {
	activeLinks : 0
}
MultiFilter.Init = function(currentTab,type,mainId){
	if (!currentTab){
		$$('.multifilter input[type="checkbox"]').filter(function(el){
			el.removeAttribute('disabled');
		})
		return false;
	}
	var Ids;
	var ProdCount;
	var hash = window.location.hash;
	var req = new Request({
		method:'post',
		url: '/ajax_request.php',
		data: {
				'master_id'		:mainId,
				'id'			:currentTab.replace(/#tab_/,''),
				'is_main_tab'	:currentTab.match(/#tab_/)?false:true,
				'context'		:'multi_filter_tab_'+type
		},
		onRequest: function() {
			//alert('request sent');
		},
		onFailure: function(r){
			//alert(r);
		},
		onComplete: function(response) {
			//alert(response);
			var IDnCnt = response.split(';');
			Ids = IDnCnt[0].split(',');
			ProdCount = IDnCnt[1].split(',');
			var i=-1;
			$$('.multifilter a').filter(function(el){
//				alert(brandProdCount[i]);
				var checkbox = el.parentNode.getElementsByTagName('input')[0];
				var tmpUrl = el.href.split('#');
				tmpUrl = tmpUrl[0];
				if (!tmpUrl.match('oferta.html')) {
					el.href = tmpUrl + currentTab;
				}
				var pNID = el.parentNode.id.replace(/mf_/,'');
				var span = el.getElementsByTagName('span')[0];
				if (!in_array(pNID,Ids) && pNID!='0' && currentTab.match(/#tab_/)){
					el.addClass('inactive');
					el.onclick = function(){
						return false;
					}
					if (span) span.innerHTML = '0';
					checkbox.setAttribute('disabled','disabled');
					checkbox.checked = false;
				}else{
					el.removeClass('inactive');
					if (span) span.innerHTML = ProdCount[i];
					checkbox.removeAttribute('disabled');
					checkbox.checked = checkbox.origChecked;
					el.onclick = function(){
						return true;
					}
					i++;
				}
			});
			if(currentTab.match(/#tab_/)){
				var el = $('mf_0').getElementsByTagName('a')[0];
				var checkbox = el.parentNode.getElementsByTagName('input')[0];
				el.addClass('inactive');
				el.onclick = function(){
					return false;
				}
				checkbox.setAttribute('disabled','disabled');
				checkbox.checked = false;
			}
		}
	}).send();
}



var Tabber = {
	maxWidth 	: 675,
	tabMargin	: 1,
	tabPadding	: 20,
	tabBorder	: 2
};

Tabber.Adjust = function(Tabs,from,to,width){
	var totalWidth=0;
	if (1==1)
	for (var i=from;i<to;i++){
		var currentWidth = Tabs[i].offsetWidth;
		var widthToSet = currentWidth+width-(this.tabMargin+this.tabPadding+this.tabBorder);
	
		Tabs[i].setStyle('width',widthToSet);
		totalWidth+=Tabs[i].offsetWidth;
	}
	var gap = this.maxWidth-(totalWidth+(to-from)*this.tabMargin);
	if (gap!=0){
		Tabs[from].setStyle('width',Tabs[from].getStyle('width').toInt()+gap);
	}
}

Tabber.Init = function(){
	var i=0;
	var lastRowIndex=0;
	var currentWidth=0;
	var currentTab = self.document.location.hash.substring(1);
	var type = $('mf_brand')?'brand':'category';
	var useAjax = $('mf_'+type)?true:false;
	var mainId = useAjax?$('mf_'+type).getElementsByTagName('fieldset')[0].id:null;
	if (useAjax) {
		mainId = mainId.split('ms_');
		mainId = mainId[1];
	}
	
	if (currentTab!='')
		if (document.getElementById(currentTab) && useAjax)
			MultiFilter.Init('#'+currentTab,type,mainId);
	$$('.tabs').filter(function(tabGroups){
		// filter tab handles
		tabGroups.Tabs = new Array();
		tabGroups.currentTab = null;
		
		tabGroups.getElements('a').filter(function(el){
			tabGroups.Tabs[i] = el;
			el.controlContent = $(el.rel);
			// if handle has element to control
			if (el.controlContent!==null){
				if (el.hasClass('active') || el.rel==currentTab){
					tabGroups.currentTab = el;
					if (!el.hasClass('active'))
						el.addClass('active');
					el.controlContent.setStyle('display','block');
				}else{
					el.controlContent.setStyle('display','none');
				}
			}
			
			// adjust tab width
			if (currentWidth+el.offsetWidth>Tabber.maxWidth){
				var widthToAdd = ((Tabber.maxWidth-currentWidth)/(i-lastRowIndex)).toInt();
				Tabber.Adjust(tabGroups.Tabs,lastRowIndex,i,widthToAdd)
				currentWidth = el.offsetWidth;
				lastRowIndex = i;
			}else{
				currentWidth+=el.offsetWidth;
			} 

			// handle click
			el.addEvent('click',function(e){
				if (tabGroups.currentTab && (this.controlContent && this!=tabGroups.currentTab)) {
					this.controlContent.id = this.controlContent.id+'.fake';
					this.controlContent.setStyle('display','block');
					this.addClass('active');

					tabGroups.currentTab.removeClass('active');
					tabGroups.currentTab.controlContent.setStyle('display','none');
					tabGroups.currentTab = this;
				}
				if (useAjax)
					MultiFilter.Init('#'+this.rel,type,mainId)
				window.location.hash=this.rel;
				return false;
			}); // end click
			++i;
		}); // end filter EL

		// set default active tab		
		if (!tabGroups.currentTab){
			tabGroups.currentTab = tabGroups.Tabs[0];
			tabGroups.currentTab.controlContent.setStyle('display','block');
			tabGroups.currentTab.addClass('active');
		}
		// adjust last row tab width
		var widthToAdd = ((Tabber.maxWidth-currentWidth)/(i-lastRowIndex)).toInt();
		if (lastRowIndex > 0 && (i-lastRowIndex>1)) {
			Tabber.Adjust(tabGroups.Tabs, lastRowIndex, i, widthToAdd)
		}
		window.scrollTo(0,0);
	}); // end filter tabgroup
	MultiFilter.Init()
}




// Filtru produse

var ProductFilter = {};
ProductFilter.Init = function(){
	$$('form ul.alphalist.categories li input[type="checkbox"]').filter(function(el){
		el.origChecked = el.getAttribute('checked');
		el.addEvent('click',function(){
			var link = this.parentNode.getElementsByTagName('input')[1];
			window.location = link.value;
		});
	})
}

// adauga mesaj de confirmare stergeri comenzi

var ConfirmBox = {}

ConfirmBox.Init = function(){
	$$('.del').filter(function(el){
		el.addEvent('click',function(){
			return confirm('Sigur vreti sa stergeti?');
		})
	})
}


function printProduct(id){
	window.open('print/'+id, 'print', 'width=720,height=560,scrollbars=1');
}

