	
	//document.write("<script type='text/javascript' src='/dynamic/_js/jquery/jquery.hotkeys.js'></script>"); 
	
		
	//document.write("<link media='screen' href='/dynamic/_css/codaBubble.css' type='text/css' rel='Stylesheet'>");
	
	
	function changeCondition( action ){
		conditionBuffer++;
		if(conditionBuffer%2==0){
			$('conditionImg').src='/images/move.gif';
			//$('conditionMsg').innerHTML='Zooming';
			condition='zoom';
		}else{
			$('conditionImg').src='/images/magplus1.gif';
			//$('conditionMsg').innerHTML='Moving';
			condition='move';
			
		}
		if( action == "compare" ){
			loadCompare( condition );
		}else if( action == "ruginfo" ){
			loadRugInfo( condition );
		}else{
			loadRugs(start, range, condition, 'rugs', function (){ 
				return sliderSearchData;
			});
		}
		updateAll();
	}
	//-----------------------------------------------------------------		
	var initScrollLayer=function () {
		var wndo = new dw_scrollObj('wn', 'lyr1');
		wndo.setUpScrollbar("dragBar", "track", "v", 1, 1);
		dw_scrollObj.GeckoTableBugFix('wn'); 
	}
	//-----------------------------------------------------------------		
	function compareResult(){
		new Ajax.Updater('rugs', '/dynamic/shop/compareresult', 
		{asynchronous:true, evalScripts:true, 
		onComplete:function(request){Element.hide('indicator');}, 
		onLoading:function(request){Element.show('indicator');} });
	}
	//-----------------------------------------------------------------
	
	function resetNumberParameter(){
		new Ajax.Updater('rugs', '/dynamic/shop/resetnumberparameter', 
		{asynchronous:true, evalScripts:true, 
		onComplete:function(request){Element.hide('indicator')}, 
		onLoading:function(request){Element.show('indicator')}});
	}
	//-----------------------------------------------------------------
	function login(){
		var j_username=$('j_username').value;
		var j_password=$('j_password').value;
		if(j_username=='' && j_password==''){
			$('usernameMesaage').innerHTML='User Name is Required';
			$('passwordMesaage').innerHTML='Password is Required';
		}else if(j_username=='' ){
			$('usernameMesaage').innerHTML='User Name is Required';
			$('passwordMesaage').innerHTML='&nbsp;';		
		}else if(j_password==''){
			$('usernameMesaage').innerHTML='&nbsp;';
			$('passwordMesaage').innerHTML='Password is Required';
		}else{
			Element.show('indicator');
			new Ajax.Updater('login', CONTEXT_PATH + '/j_security_check', 
			{asynchronous:true, evalScripts:true, 
			onComplete:function(request){Element.hide('indicator');}, 
			parameters:'j_username='+j_username+'&j_password='+ j_password});
		}			
	}
	//-----------------------------------------------------------------
	function afetLogin(myHref, rugsDiv){
		//alert( myHref + rugsDiv);
		if(myHref.charAt(0)=='/'){
			window.location.href=myHref;
		}else{
			//loadRugs(start, range, condition, rugsDiv);
		}
	}

	//-----------------------------------------------------------------
	function sendForgetPassword(){
		$('forgetPasswordSubmit').disabled = true;
		new Ajax.Updater('forgetedPassword', '/dynamic/shop/getNewPassword.html', 
		{asynchronous:true, evalScripts:true, 
		onComplete:function(request){
			Element.hide('indicator');
			$('forgetPasswordSubmit').disabled = false;
		}, 
		onLoading:function(request){Element.show('indicator');} , 
		parameters:'userName='+document.forgetPassword.userName.value});
	}
	//-----------------------------------------------------------------
	function search(){
		alert('search');
		new Ajax.Updater('search', '/shop/search.html', 
		{asynchronous:true, evalScripts:true, 
		onComplete:function(request){Element.hide('indicator')}, 
		onLoading:function(request){Element.show('indicator')} , 
		parameters:'number='+document.search.number.value+
		'&length='+document.search.length.value+
		'&lengthMax='+document.search.lengthMax.value+
		'&lengthTolerance='+document.search.lengthTolerance.value+
		'&width='+document.search.width.value+
		'&widthMax='+document.search.widthMax.value+
		'&widthTolerance='+document.search.widthTolerance.value+
		'&weight='+document.search.weight.value+
		'&weightMax='+document.search.weightMax.value+
		'&weightTolerance='+document.search.weightTolerance.value+
		'&price='+document.search.price.value+
		'&priceMax='+document.search.priceMax.value+
		'&priceTolerance='+document.search.priceTolerance.value+
		'&age='+document.search.age.value+
		'&backgroundColor='+document.search.backgroundColor.value+
		'&borderColor='+document.search.borderColor.value+
		'&category='+document.search.category.value+
		'&rugCondition='+document.search.rugCondition.value+
		'&design='+document.search.design.value+
		'&foundation='+document.search.foundation.value+
		'&pile='+document.search.pile.value+
		'&shape='+document.search.shape.value+
		'&style='+document.search.style.value});
	}

	//-----------------------------------------------------------------
	//function rugPerPageSetter(items){
	//	rugPerPage=items;
	//	loadRugs(0, rugPerPage, condition, 'rugs');
	//}
	//-----------------------------------------------------------------
	var walkPage = function( diff ){
		if( typeof( $('sliderUpPrev').disabled ) == 'undefined' || $('sliderUpPrev').disabled == false ){
			s.setValueBy( diff );
		}
	};
	var rugPerPage=9;
	var rugMaxCount=0;
	sliderSearchData = {};
	var s = false;
	//var popUpAppender = false;
	function createSlider(rugMaxCount) {
		//if(this.rugMaxCount==0){
			this.rugMaxCount=rugMaxCount;
			var maxValue=0;
			var minValue=0;
			var div=Math.floor(rugMaxCount/rugPerPage);
			if((Math.floor(rugMaxCount/rugPerPage))==rugMaxCount/rugPerPage){
				maxValue=div-1;
			}else{
				maxValue=div;
			}
			//$('sliderHandleImg').style.width='' + (parseInt(356.0/maxValue)) + 'px';
			//alert( $('sliderHandleImg').style.width + ' ' + maxValue  );
			var values = [];
			for (var n = minValue; n <= maxValue; n++) values.push(n);
			if( s ){
				s.dispose();
				delete(s);
			}
			s=new Control.Slider('sliderHandle', 'sliderTrack', 
			{range: $R(minValue,maxValue), values: values, sliderValue: minValue, 
			onChange: function(value1) { 
				//alert(  value1 );
				//var log = log4javascript.getLogger();
				//if( !popUpAppender ){
				//	popUpAppender = new log4javascript.PopUpAppender();
				//	popUpAppender.setFocusPopUp(true);
				//	popUpAppender.setNewestMessageAtTop(true);
				//}
				//log.addAppender(popUpAppender);

				var start=value1*rugPerPage;
				var range=rugPerPage;
				
				//log.debug( value1 + " " + start + " " + range );
				loadRugs(value1*rugPerPage, rugPerPage, condition, 'rugs', function (){ 
					return sliderSearchData;
				}, false );
				$('sliderValue').innerHTML = value1+1;
				$('sliderValueDown').innerHTML = value1+1;
			}
			//,
			//onSlide: function(value2) {$('sliderValue').innerHTML = value2+1;$('sliderValueDown').innerHTML = value2+1;}
			});
			
			$('sliderValue').innerHTML = minValue+1;
			$('maxPageValue').innerHTML=maxValue+1;
			$('sliderValueDown').innerHTML = minValue+1;
			$('maxPageValueDown').innerHTML=maxValue+1;	
			$('totalRecords').innerHTML=rugMaxCount;
		//}
	}
	function loadCompare( condition ){
		this.condition=condition;
		Element.show('indicator');
		new Ajax.Updater('comparedetail', '/dynamic/shop/comparedetail.html', {
			asynchronous:true, evalScripts:true, 
			onComplete:function(request){
				Element.hide('indicator');
			}, 
			/*onLoading:function(request){Element.show('indicator')},*/ 
			//parameters: 'start='+ start +'&range='+range+'&condition='+condition+'&whichPageLoadsInRugsFrame='+whichPageLoadsInRugsFrame
			parameters: jQuery.param({
				condition: condition
			})
		});
	}
	function loadRugInfo( condition ){
		this.condition=condition;
		Element.show('indicator');
		new Ajax.Updater('ruginfodetail', '/dynamic/shop/ruginfo/detail/' + $('rugInfoNumber').value + '.html', {
			asynchronous:true, evalScripts:true, 
			onComplete:function(request){
				Element.hide('indicator');
			}, 
			/*onLoading:function(request){Element.show('indicator')},*/ 
			//parameters: 'start='+ start +'&range='+range+'&condition='+condition+'&whichPageLoadsInRugsFrame='+whichPageLoadsInRugsFrame
			parameters: jQuery.param({
				condition: condition
			})
		});
	}
	//-----------------------------------------------------------------
	function loadRugs(start, range, condition, whichPageLoadsInRugsFrame, searchData, slider ){
		if( $('sliderUpPrev').disabled == true ){
			return;
		}
		this.condition=condition;
		this.start=start;
		this.range=range;

/*		new Ajax.Request('rugs', {
			  onSuccess: function(response) {
				var log = log4javascript.getLogger(); 
				
				// Create a PopUpAppender with default options
				var popUpAppender = new log4javascript.PopUpAppender();
				
				// Change the desired configuration options
				popUpAppender.setFocusPopUp(true);
				popUpAppender.setNewestMessageAtTop(true);
				
				// Add the appender to the logger
				log.addAppender(popUpAppender);
				
				// Test the logger
				log.debug( response.responseText );
			  }
			});
		return;
*/		
		var p = jQuery.param({
			start: start,
			range: range,
			slider: slider,
			condition: condition, 
			whichPageLoadsInRugsFrame: whichPageLoadsInRugsFrame 
		});
		if( jQuery.isFunction(searchData) ){
			p += "&" + jQuery.param( searchData() );
		}
		$('sliderUpPrev').disabled = true;
		Element.show('indicator');
		new Ajax.Updater('rugs', whichPageLoadsInRugsFrame, {
			asynchronous:true, evalScripts:true, 
			onComplete:function(request){
				Element.hide('indicator');
				$('sliderUpPrev').disabled = false;
			}, 
			/*onLoading:function(request){Element.show('indicator')},*/ 
			//parameters: 'start='+ start +'&range='+range+'&condition='+condition+'&whichPageLoadsInRugsFrame='+whichPageLoadsInRugsFrame
			parameters: p
		});
	}
	
	var doAdvancedSearch = function(){
		sliderSearchData = {
			number: 		$('number').value,
			lengthUnit: 	$('lengthUnit').value,
			weightUnit:		$('weightUnit').value,
			length: 		$('length').value,
			lengthMax: 		$('lengthMax').value,
			//lengthTolerance:$('lengthTolerance').value,
			width: 			$('width').value,
			widthMax: 		$('widthMax').value,
			//widthTolerance:	$('widthTolerance').value,
			weight:			$('weight').value,
			weightMax:		$('weightMax').value,
			//weightTolerance:$('weightTolerance').value,
			price:			$('price').value,
			priceMax:		$('priceMax').value,
			//priceTolerance:	$('priceTolerance').value,
			age:			$('age').value,
			category:		$('category').value,
			backgroundColor:$('backgroundColor').value,
			borderColor:	$('borderColor').value,
			rugCondition:	$('rugCondition').value,
			design:			$('design').value,
			foundation:		$('foundation').value,
			pile:			$('pile').value,
			shape:			$('shape').value,
			style:			$('style').value,
			shuffle:		$('shuffle').value
		};
		loadRugs(0, rugPerPage, condition, 'rugs', function (){ 
			return sliderSearchData;
		}, true);
	};
	var doQuickSearch = function(){
		sliderSearchData = {
				number: 		$('sq_number').value,
				lengthUnit: 	$('sq_lengthUnit').value,
				length: 		$('sq_length').value,
				lengthMax: 		$('sq_lengthMax').value,
				width: 			$('sq_width').value,
				widthMax: 		$('sq_widthMax').value,
				price:			$('sq_price').value,
				priceMax:		$('sq_priceMax').value,
				backgroundColor:$('sq_backgroundColor').value,
				style:			$('sq_style').value,
				shuffle:		$('shuffle').value
		};
		loadRugs(0, rugPerPage, condition, 'rugs', function (){ 
			return sliderSearchData;
		}, true);
	};
	
	doLoad=function(){
		var _rugsize = {
				small  : { w: 100 , l: 150 },
				large  : { w: 150 , l: 250 }
		};
		var _rugstyle = {
				modern  : " 'Gabbeh' , 'Gashgai New' , 'Kashkuli New' ",
				traditional  : " 'Abadeh' , 'Gashgai' , 'Kashkuli' , 'Shiraz' , 'Bakhtiari' , 'Isfahan' ,'Hamedan' , 'Tabriz' , 'Qom' , 'Nain' "
		};

		var _rugorder = {
				newarrival  : 'new-arrival'
		};

		sliderSearchData = {
				width: 			'',
				widthMax: 		'',
				length: 		'',
				lengthMax: 		'',
				style: '',
				order: '',
				shuffle: ''
		};
		if( $("global_rugsize").value == 'small' ){
			sliderSearchData.widthMax = _rugsize.small.w;
			sliderSearchData.lengthMax = _rugsize.small.l;
		}else if( $("global_rugsize").value == 'large' ){
			sliderSearchData.width = _rugsize.large.w;
			sliderSearchData.length = _rugsize.large.l;
		}else if( $("global_rugsize").value == 'medium' ){
			sliderSearchData.width = _rugsize.small.w;
			sliderSearchData.widthMax = _rugsize.large.w;
			sliderSearchData.length = _rugsize.small.l;
			sliderSearchData.lengthMax = _rugsize.large.l;
		}
		if( $("global_rugstyle").value != '' ){
			sliderSearchData.style = $("global_rugstyle").value;
		}else if( $("global_rugstylecat").value == 'modern' ){
			sliderSearchData.style = _rugstyle.modern;
		}else if( $("global_rugstylecat").value == 'traditional' ){
			sliderSearchData.style = _rugstyle.traditional;
		}
		if( $("global_rugorder").value == 'new-arrival' ){
			sliderSearchData.order = _rugorder.newarrival;
		}
		sliderSearchData.shuffle = $("shuffle").value;
		//loadRugs(0, rugPerPage, condition, 'rugs', function (){ return sliderSearchData; });

		new Ajax.Updater('login', '/dynamic/userProfile/index.html?loginFrame=window&rugsFrameContent=checkout', {asynchronous:true, evalScripts:true});
		//new Ajax.Updater('forgetedPassword', '/dynamic/shop/forgetPassword.html', {asynchronous:true, evalScripts:true});
		
		//new Ajax.Updater('search', '/dynamic/shop/search.html', {asynchronous:true, evalScripts:true});
		//initScrollLayer();
		
		updateAll();	
	};
	
	doLogin = function( id, afterLogin ){
		if( '#' == afterLogin ){
			afterLogin = window.location.href;
		}
		new Ajax.Updater(
				id, 
				'/dynamic/userProfile/index.html?loginFrame=window&afterLogin='+ afterLogin + '&rugsFrameContent=checkout', 
				{
					asynchronous:true, 
					evalScripts:true,
					onComplete:function(request){
						Effect.Grow( id );
					}
				}
		);
	};
	
	doLoadGeneric=function(){
		//loadRugs(0, rugPerPage, condition, 'rugs', function (){ return sliderSearchData; });

		//new Ajax.Updater('forgetedPassword', '/dynamic/shop/forgetPassword.html', {asynchronous:true, evalScripts:true});
		
		//new Ajax.Updater('search', '/dynamic/shop/search.html', {asynchronous:true, evalScripts:true});
		//initScrollLayer();
		
		updateAll();	
	};
	
	function moreInfo(id, start, range){
		$("rugInfoForm_id").value = id;
		$("rugInfoForm_start").value = start;
		$("rugInfoForm_range").value = range;
		$("rugInfoForm_condition").value = condition;
		$("rugInfoForm").action="/dynamic/shop/ruginfo/" + id + ".html";
		$("rugInfoForm").submit();
		/*
		new Ajax.Updater('rugs', 'moreinfo', 
		{asynchronous:true, evalScripts:true, 
		onComplete:function(request){Element.hide('indicator');}, 
		onLoading:function(request){Element.show('indicator');},  
		parameters:'id='+id+'&start='+ start +'&range='+range+'&condition='+condition});
		*/
	}
	var condition='zoom';
	var start=0;
	var range=9;
	//-----------------------------------------------------------------
	var cartBuffer=1;
	function cartSlider(){
		cartBuffer++;
		if(cartBuffer%2==0){
			$('cartHeader').style.backgroundImage='url("/images/shoppingCartOpen.jpg")';
			new Effect.SlideDown('menu_block1'); return false;
		}else{
			$('cartHeader').style.backgroundImage='url("/images/shoppingCartClose.jpg")';
			new Effect.SlideUp('menu_block1'); return false;
		}
	}
	//-----------------------------------------------------------------
	var compareBuffer=1;
	function compareSlider(){
		compareBuffer++;
		if(compareBuffer%2==0){
			$('compareHeader').style.backgroundImage='url("/images/compareOpen.jpg")';
			new Effect.SlideDown('menu_block2'); return false;
		}else{
			$('compareHeader').style.backgroundImage='url("/images/compareClose.jpg")';
			new Effect.SlideUp('menu_block2'); return false;
		}
	}
	//-----------------------------------------------------------------
	var wishlistBuffer=1;
	function wishlistSlider(){
		wishlistBuffer++;
		if(wishlistBuffer%2==0){
			$('wishlistHeader').style.backgroundImage='url("/images/wishListOpen.jpg")';
			new Effect.SlideDown('menu_block3'); return false;
		}else{
			$('wishlistHeader').style.backgroundImage='url("/images/wishListClose.jpg")';
			new Effect.SlideUp('menu_block3'); return false;
		}
	}
	//-----------------------------------------------------------------
	var lastvisitedBuffer=1;
	function lastvisitedSlider(){
		lastvisitedBuffer++;
		if(lastvisitedBuffer%2==0){
			$('lastvisitedHeader').style.backgroundImage='url("/images/lastVisitedOpen.jpg")';
			new Effect.SlideDown('menu_block4'); return false;
		}else{
			$('lastvisitedHeader').style.backgroundImage='url("/images/lastVisitedClose.jpg")';
			new Effect.SlideUp('menu_block4'); return false;
		}
	}
	//-----------------------------------------------------------------
	var wastebinBuffer=1;
	function wastebinSlider(){
		wastebinBuffer++;
		if(wastebinBuffer%2==0){
			$('wasteBinHeader').style.backgroundImage='url("/images/wasteBinOpen.jpg")';
			new Effect.SlideDown('menu_block5'); return false;
		}else{
			$('wasteBinHeader').style.backgroundImage='url("/images/wasteBinClose.jpg")';
			new Effect.SlideUp('menu_block5'); return false;
		}
	}
	//-----------------------------------------------------------------
	var conditionBuffer=0;
	
	//function checkOut(start, range, condition){
	//	new Ajax.Updater('rugs', 'checkout', {asynchronous:true, evalScripts:true, 
	//	onComplete:function(request){Element.hide('indicator')}, 
	//	onLoading:function(request){Element.show('indicator')}, 
	//	parameters:'start='+ start +'&range='+range+'&condition='+condition});
	//}
	
	//-----------------------------------------------------------------
	function addToCartByClick(id){
		new Ajax.Updater('cart', '/dynamic/shop/cart?id='+id + '&condition=' + condition, {asynchronous:true, evalScripts:true});
	}
	
	//-----------------------------------------------------------------		
	function removeFromCartByClick(id, start, range, condition, whichPageLoadsInRugsFrame){
		new Ajax.Updater('wastebin', '/dynamic/shop/wastebin', {asynchronous:true, evalScripts:true,  parameters:'id='+ id +'&start='+ start +'&range='+range+'&condition='+condition+'&whichPageLoadsInRugsFrame='+whichPageLoadsInRugsFrame});
	}
	
	//-----------------------------------------------------------------		
	function addToWishListByClick(id){
		new Ajax.Updater('wishlist', '/dynamic/shop/wishlist?id='+id, {asynchronous:true, evalScripts:true});
	}
	
	//-----------------------------------------------------------------	
	function stroker(){
		//jQuery.hotkeys.add('f8', function(){changeCondition()});
	}
	//-----------------------------------------------------------------		
	function updateAll(){
		new Ajax.Updater('cart', '/dynamic/shop/cart', {asynchronous:true, evalScripts:true,  parameters:'start='+ start +'&range='+range+'&condition='+condition});
		new Ajax.Updater('wishlist', '/dynamic/shop/wishlist', {asynchronous:true, evalScripts:true,  parameters:'start='+ start +'&range='+range+'&condition='+condition});
		new Ajax.Updater('compare', '/dynamic/shop/compare', {asynchronous:true, evalScripts:true,  parameters:'start='+ start +'&range='+range+'&condition='+condition});
		new Ajax.Updater('lastvisited', '/dynamic/shop/lastvisited', {asynchronous:true, evalScripts:true,  parameters:'start='+ start +'&range='+range+'&condition='+condition});
		new Ajax.Updater('wastebin', '/dynamic/shop/wastebin', {asynchronous:true, evalScripts:true,  parameters:'start='+ start +'&range='+range+'&condition='+condition});	
	}	
	//-----------------------------------------------------------------

	function clearCompareCart(){
		new Ajax.Updater('compare', 'compare',{
			asynchronous:true, evalScripts:true, 
			onComplete:function(request){
				Element.hide('indicator');
			}, 
			onLoading:function(request){
				Element.show('indicator');
			}, 
			parameters:'start='+ start +'&range='+range+'&condition='+condition+'&clear=true'
		});
	}
	
	function initDragables(){
		Droppables.add("cart", {hoverclass:'active', onDrop:function(element){new Ajax.Updater('cart', 'cart', {asynchronous:true, evalScripts:true, onComplete:function(request){Element.hide('indicator');}, parameters:'id=' + encodeURIComponent(element.id)});}});
		Droppables.add("cartHeader", {hoverclass:'headActive', onDrop:function(element){new Ajax.Updater('cart', 'cart', {asynchronous:true, evalScripts:true, onComplete:function(request){Element.hide('indicator');}, parameters:'id=' + encodeURIComponent(element.id)});}});
		
		Droppables.add("wishlist", {hoverclass:'active', onDrop:function(element){new Ajax.Updater('wishlist', 'wishlist', {asynchronous:true, evalScripts:true, onComplete:function(request){Element.hide('indicator');}, onLoading:function(request){Element.show('indicator');}, parameters:'start='+ start +'&range='+range+'&condition='+condition+'&id=' + encodeURIComponent(element.id)});}});	
		Droppables.add("wishlistHeader", {hoverclass:'headActive', onDrop:function(element){new Ajax.Updater('wishlist', 'wishlist', {asynchronous:true, evalScripts:true, onComplete:function(request){Element.hide('indicator');}, onLoading:function(request){Element.show('indicator')}, parameters:'start='+ start +'&range='+range+'&condition='+condition+'&id=' + encodeURIComponent(element.id)});}});	

		var dragCompareHandle = function(element){
			new Ajax.Updater('compare', 'compare',{
				asynchronous:true, evalScripts:true, 
				onComplete:function(request){
					Element.hide('indicator');
					if( $('compareCartCount').value >= 4 ){
						alert( "Compare Basket is full." );
					}
				}, 
				onLoading:function(request){
					Element.show('indicator');
				}, 
				parameters:'start='+ start +'&range='+range+'&condition='+condition+'&id=' + encodeURIComponent(element.id)
			});
		};
		Droppables.add("compare", {hoverclass:'active', 
			onDrop:function(element){
				dragCompareHandle(element);
			}
		});
		
		Droppables.add("compareHeader", {hoverclass:'headActive', 
			onDrop:function(element){
				dragCompareHandle(element);
			}
		});

		Droppables.add("lastvisited", {hoverclass:'active'}); 
		
		Droppables.add("wastebin", {hoverclass:'active', onDrop:function(element){new Ajax.Updater('wastebin', 'wastebin', {asynchronous:true, evalScripts:true, onComplete:function(request){Element.hide('indicator');}, onLoading:function(request){Element.show('indicator');}, parameters:'start='+ start +'&range='+range+'&condition='+condition+'&id=' + encodeURIComponent(element.id)});}});
		Droppables.add("wastebinHeader", {hoverclass:'headActive', onDrop:function(element){new Ajax.Updater('wastebin', 'wastebin', {asynchronous:true, evalScripts:true, onComplete:function(request){Element.hide('indicator');}, onLoading:function(request){Element.show('indicator');}, parameters:'start='+ start +'&range='+range+'&condition='+condition+'&id=' + encodeURIComponent(element.id)});}});
	}
	
	
