		
		
			function cmfPopitup(url,width,height,showType)
			{
				var left = (screen.width-width)/2;
				var top = (screen.height-height)/2;
				if (left < 0) left = 0;
				if (top < 0) top = 0;
				var windowAttr='height='+height+',width='+width+',left='+left+',top='+top+',status=1,scrollbars=1,menubar=1';
				if (showType=='full') windowAttr='height='+height+',width='+width+',left='+left+',top='+top+','+'status=1,scrollbars=1,menubar=1,resizable=1';
				if (showType=='fixSimple') windowAttr='height='+height+',width='+width+',left='+left+',top='+top+','+'status=0,scrollbars=0,menubar=0,resizable=0';
				if (showType=='scrollResizable') windowAttr='height='+height+',width='+width+',left='+left+',top='+top+','+'status=0,scrollbars=1,menubar=0,resizable=1';
				if (showType=='fixWithScrollbars') windowAttr='height='+height+',width='+width+',left='+left+',top='+top+','+'status=0,scrollbars=1,menubar=0,resizable=0';

				newWindow=window.open(url,'name',windowAttr);
				if (window.focus) {newWindow.focus()}
				return false;
			}
			
				
			function cmfGetElements(docObj) 
			{
				if (docObj==null) {docObj=document;}
				var all = docObj.all ? docObj.all :
						docObj.getElementsByTagName('*');
				var elements = new Array();
				for (var e = 0; e < all.length; e++)
						elements[elements.length] = all[e];
				return elements;
			}
			
				
			/* This script and many more are available free online at
			The JavaScript Source!! http://javascript.internet.com
			Created by: Ultimater | http://webdeveloper.com/forum/member.php?u=30185 */
			function cmfHtmlEntityDecode(str) {
			  var ta=document.createElement("textarea");
			  ta.innerHTML=str.replace(/</g,"&lt;").replace(/>/g,"&gt;");
			  return ta.value;
			}
			
				
			function cmfCreateHtmlNode(tag, text) {
				var n = document.createElement(tag);
				if (text) n.innerHTML = text;
				return n;
			}
			
				
			/*
			Script by RoBorg
			RoBorg@geniusbug.com
			http://javascript.geniusbug.com | http://www.roborg.co.uk
			Please do not remove or edit this message
			Please link to this website if you use this script!
			*/
			function cmfClone(myObj)
			{
				if(typeof(myObj) != 'object') return myObj;
				if(myObj == null) return myObj;
			
				var myNewObj = new Object();
			
				for(var i in myObj)
					myNewObj[i] = clone(myObj[i]);
			
				return myNewObj;
			}
			
				
			function cmfClearSelectObject(obj) {
				/*
				obj.innerHTML='';
				return true;
				optgroups = obj.getElementsByTagName('optgroup');
				for (var j = 0; j < optgroups.length; j++) {
					obj.removeChild(optgroups[j]);
				}
				options = obj.getElementsByTagName('options');
				for (var j = 0; j < options.length; j++) {
					obj.removeChild(options[j]);
				}*/
				//obj.options.length=0;
				//obj.selectedIndex=null;
				
				var childs = obj.childNodes;
				for(i = childs.length - 1 ; i >= 0 ; i--) {
					obj.removeChild(childs[i],true);
				}
			}
			
				
			function cmfConfimationMessage(message)
			{
				if(confirm(message)) { return true; }
				else {return false;}
			}
			
					/*
				mode : onlyHide,OnlyShow
				use this parameter to force function to only hide or show the element,
				"mode" is useful if you have separate buttons to show and hide the object.
			*/
			function cmfToggleDisplayStyle(id,mode) {
		
				var element=document.getElementById(id);
				if (element) {
					if (element.style.display=='none' && mode!='onlyHide') {
						element.style.display='';
						return true;
					}
					else if (mode!='onlyShow') {
						element.style.display='none';
						return true;
					}
				}
				return false;
			}
			
					/*
				mode : onlyHide,OnlyShow
				use this parameter to force function to only hide or show the element,
				"mode" is useful if you have separate buttons to show and hide the object.
			*/
			function cmfToggleTabsDisplayStyle(activeTabId,tabsId,onSelectTab) {
				var tabId;
				var elm;
				for (key in tabsId) {
					tabId=tabsId[key];
					elm=document.getElementById(tabId);
					if (elm) {
						if (tabId==activeTabId) {
							elm.style.display='';
							if (onSelectTab) {
								onSelectTab(elm.id)
							}
						} else
							elm.style.display='none';
					}
				}
			}
			

				
	
		  
		
			function onCheckBoxReset() {
				var searchPanel = document.getElementById('searchPanelContainer');
				var myAll = searchPanel.getElementsByTagName('INPUT');
				for(var i=0; i<myAll.length;i++)
				{
					var obj = myAll[i];
					//var obj = document.getElementById(i);
						
					if(obj.type=='checkbox')
					{
						if(obj.checked)
						{
							obj.checked=false;
							
							var parent = obj.parentNode;
							
							if(parent)
							{
								parent.className = 'checkboxLabel2';
							}
							
						}
					}
				}
			}

			/*function alertObject(object)
			{
				var msg = '';
				for(var i in object)
					msg += i+': '+object[i]+"\n";

				alert('object: '+msg);
			}*/
			function onCheckBoxChange(obj) {
				if(obj.children)
					childObj = obj.children[0];
				else if(obj.childNodes)
					childObj = obj.childNodes[0]; 

				if(obj.className == 'checkboxLabel')
				{
					obj.className = 'checkboxLabel2';
					childObj.checked = false;
					if(childObj.lang){
						checkCompareBox(obj, false);
					}
				
				}
				else
				{
					obj.className = 'checkboxLabel';
					childObj.checked = true;
					if(childObj.lang){
						checkCompareBox(obj, true);
					}
				}
			}
			
			var totalSelected = 0;
			//var compareArray = new Array();
			function checkCompareBox(obj, compareStatus){

				if(obj.children)
					childObj = obj.children[0];
				else if(obj.childNodes)
					childObj = obj.childNodes[0];
			
				if(compareStatus){
					totalSelected += 1;
				}else{
					totalSelected -= 1;
				}
				if(totalSelected==1){
					//document.getElementById('compareMessage').style.display = '';
					if(!childObj[1] && compareStatus == true){
						var templateItemBox= '<div id="compareDesc_'+childObj.lang+'" class="checkCompareMessage">لطفا برای مقایسه، محصولات بیشتری را انتخاب کنید</div>';
						var htmlNode=cmfCreateHtmlNode('span',templateItemBox);				
						var childNumber;
						if(document.all || htmlNode.childNodes)
							childNumber = 0;
						else
							childNumber = 1;

						var htmlSubNode;
						if(htmlNode.children)
							htmlSubNode = htmlNode.children[childNumber];
						else if(htmlNode.childNodes)					
							htmlSubNode = htmlNode.childNodes[childNumber];

				
						obj.appendChild(htmlSubNode);
						//obj.innerHTML += '<div id="compareDesc_'+childObj.lang+'" class="checkCompareMessage">لطفا برای مقایسه، محصولات بیشتری را انتخاب کنید</div>';
						//alert(obj.innerHTML);
						setTimeout(function(){ $('.checkCompareMessage').remove(); }, 2000); 
					}
				}else{
				
					//document.getElementById('compareMessage').style.display = 'none';
				}
			}
	
			function wsfjGoTo(loc){
				window.location = loc;
			}
	
			var backupElements=new Array(2);
		

			function onSelectParentDropDown(parentElmId, childElmId) {
	
				var p$htmlTagsarent=document.getElementById(parentElmId);
				var child=document.getElementById(childElmId);
				var display='none';

				if (!backupElements[childElmId]) {
					//alert(clone(document.getElementById(childElmId)));
					backupElements[childElmId]=document.getElementById(childElmId).cloneNode(true);
				}

				var orgChild=backupElements[childElmId];
				cmfClearSelectObject(child);		
				orgItems = orgChild.getElementsByTagName('optgroup');
				child.appendChild(new Option());
				for (var j = 0; j < orgItems.length; j++)
				{
					if (parent.value==orgItems[j].title) {
						child.appendChild(orgItems[j].cloneNode(true));
					} else {
					}
				}
				

			}
	
			function onKeyPressParentDropDown(e,parent_id, child_id) {
				if (!e) e=event;
				if (document.all) {
					k = e.keyCode ;
				} else {
					k = e.which ;
					if (k==9 || k==13) 
						onSelectParentDropDown(parent_id,child_id);
				}
			}

			function cpfOnChangeProductDropDown(url)
			{
				window.location = document.getElementById('comparationForm').action.replace('%productToCompare%', url);
			}

		    function getObjectTop(element)
		    {
			   var y = element.offsetTop;
			   if (element.offsetParent) {
				var tmp = getObjectTop(element.offsetParent);
				y += tmp;
			   }
			   return y;
		    }

		    var movingPanelObj;
		    var buttonBoxObjTopPosition;
		    var movableBoxObjTopPosition;
		    var currentClass = 'staticBox';

			function movePanel()
			{
			    var movingPanelObjCurrentTopPosition;
			    var movingPanelObjTopPosition;
			    var topPosition = posTop();
				if(!movingPanelObj)
				{
					movingPanelObj = document.getElementById('movableRightSide');
				}
				if(!buttonBoxObjTopPosition)
				{
					buttonBoxObjTopPosition = getObjectTop(document.getElementById('homeBtnBox'));
				}
				if(!movableBoxObjTopPosition)
				{
					var menuBox = document.getElementById('menuBox');
					movableBoxObjTopPosition = getObjectTop(menuBox) + menuBox.offsetHeight;
				}

				movingPanelObjCurrentTopPosition = getObjectTop(movingPanelObj);
		
				movingPanelObjHeight = movingPanelObj.offsetHeight;


				if(!document.all)
				{
					var resultClass;
					if(topPosition<movableBoxObjTopPosition)
						resultClass = 'staticBox';
					else if(topPosition+movingPanelObjHeight>buttonBoxObjTopPosition)
						resultClass = 'bottomBox';
					else
						resultClass = 'floatingBox';
	
					if( $('.main').attr('offsetHeight') < $('.rightSide').attr('offsetHeight'))
					{
						resultClass = '';
					}
			
					if(currentClass != resultClass)
					{
						currentClass = resultClass;
						document.getElementById('movableRightSide').className = resultClass;
						document.getElementById('movableRightSide').style.position = resultClass == 'bottomBox' && $('.main').attr('offsetHeight') < $('.rightSide').attr('offsetHeight') ? 'absolute' : '';
					}
			
				}
				else
				{
					if(movingPanelObj.style.marginTop)
						movingPanelObjTopPosition = movingPanelObjCurrentTopPosition-(movingPanelObj.style.marginTop).replace('px', '');
					else
						movingPanelObjTopPosition = movingPanelObjCurrentTopPosition;

					if(topPosition-movingPanelObjTopPosition<=0)
						marginTop = 0;
					else if(buttonBoxObjTopPosition-topPosition<movingPanelObjHeight)
						marginTop = (buttonBoxObjTopPosition-movingPanelObjTopPosition)-movingPanelObjHeight;
					else
						marginTop = topPosition-movingPanelObjTopPosition;
	
					if(marginTop<0)
						marginTop = 0;
	
					document.getElementById('movableRightSide').style.marginTop = marginTop+'px';
				}
				//document.getElementById('testAd').innerHTML = 'P: '+topPosition+' T: '+movingPanelObjCurrentTopPosition+' H: '+movingPanelObjHeight+' B: '+buttonBoxObjTopPosition+' M: '+marginTop;
				//alert(getObjectTop(movingPanelObj));		
				//alert(posTop());
			}
			//window.onresize = movePanel;
			//window.onscroll = movePanel;

			function toggleSearchPanel(force)
			{
				var containerBox = $('#searchPanelContainer');
				var containerParentBox = containerBox.parent();
				var minHeight = 80;
				var maxHeight = (containerBox.attr('offsetHeight'));

				var test = '';
				
				if( force || containerParentBox.attr('offsetHeight')==minHeight)
				{
					for(var i=minHeight; i<=maxHeight;i++)
					{
						containerParentBox.css('height', i+'px');
					}
					$('#searchPanelButton').attr('className', 'off btn');
				}
				else
				{
					for(var i=maxHeight; i>=minHeight;i--)
					{
						containerParentBox.css('height', i+'px');
					}
					$('#searchPanelButton').attr('className', 'on btn');
				}
			}
	
			function searchPanelContainerMouseOver( on)
			{
				var newClass = 'on btn';
				switch( $('#searchPanelButton').attr('className'))
				{
					case 'on btn': case 'onRed btn': newClass = ( on ? 'onRed' : 'on') + ' btn';break;
					case 'off btn': case 'offRed btn': newClass = ( on ? 'offRed' : 'off') + ' btn';break;
				}
				$('#searchPanelButton').attr('className', newClass);
			}
	
			function changeSideMenuHeight()
			{
				if( $('.main').attr('offsetHeight') > $('.rightSide').attr('offsetHeight'))
				{
					$('.rightSide').css('height', $('.main').attr('offsetHeight'));
				}
			}
	
			window.onload = changeSideMenuHeight;

			function changePaymentPanel(selectedMethod)
			{

					$('.paymentMethod').css('display', 'none');
					switch(selectedMethod)
					{
						case '1':
							$('#offlinePaymentMethod').css('display', '');
							break;
						case '2':
							$('#onlinePaymentMethod').css('display', '');
							break;
						case '3':
							$('#cashPaymentMethod').css('display', '');
							break;
						default:
							$('#nonePaymentMethod').css('display', '');
					}
			}
		

			function getPaginationWidth(containerId)
			{
				container = $('#'+containerId+' li');
				var pagingWidth = 8;
				for(var i=0; i<container.length;i++)
				{
					pagingWidth += container[i].offsetWidth;
				}
				$('#'+containerId).css('width', pagingWidth + 'px');
			}

			function saveRating(name)
			{
				if($('#1starRatingBar'+name).css('display')!='none')
				{
					$('#1starRatingBar'+name).hide();
			
					var selectedValue = $("input[name='"+name+"']:checked").val();
					var command = "myAjax.simpleCall(this,'/?rebuild=1\x26sn=home\x26pt=\x26\x26trigger=___name___\x26triggerValue=___selectedValue___',['starRatingBar___name___'],{loadingIndicator: null,loadingIndicatorEnabled: null})";
					command = command.replace(/___name___/g, name);
					command = command.replace('___selectedValue___', selectedValue);
					//alert(command);
					eval(command);
				}
			}

		

		