// whitespace characters
<!--
	var whitespace = " \t\n\r";
	var bannerPtr = 0;
	var allow = false;
	
	

	function MM_swapImage() { //v3.0
		var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
			if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
	}

	function MM_swapImgRestore() { //v3.0
  		var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
	}

	function MM_preloadImages() { //v3.0
  		var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
    	var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
    	if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
	}

	function MM_findObj(n, d) { //v4.01
  		var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    		d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
		if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  		for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
  		if(!x && d.getElementById) x=d.getElementById(n); return x;
	}
	
	
//disable right click
	function right(e) {
		if (allow)
			return true;
			
		if (navigator.appName == 'Netscape' && (e.which == 3 || e.which == 2))
			return false;
		else if (navigator.appName == 'Microsoft Internet Explorer' && (event.button == 2 || event.button == 3)) {
			alert("Sorry, you do not have permission to right click.");
			return false;
		}
		
		return true;
	}

	document.onmousedown=right;
	document.onmouseup=right;
	if (document.layers) window.captureEvents(Event.MOUSEDOWN);
	if (document.layers) window.captureEvents(Event.MOUSEUP);
	window.onmousedown=right;
	window.onmouseup=right;	
	

	function winPopup (FileName, WindowName, width, height, scrollFlag) {
		WindowFeature = "Resizable=yes, ScrollBars="+scrollFlag+", MenuBar=No, Directories=No, ToolBar=No, Location=No, Status=No, Width="+width+", Height="+height+", Left=20, Top=20";
		newWindow=open(FileName, WindowName, WindowFeature);
		newWindow.focus();
	}
	
      /****************************************************************/

	// Check whether string s is empty.
	function isEmpty(s) {
		return ((s == null) || (s.length == 0))
	}

      /****************************************************************/

      function isWhitespace (s) {
           var i;

           // Is s empty?
           if (isEmpty(s)) return true;

           // Search through string's characters one by one
           // until we find a non-whitespace character.
           // When we do, return false; if we don't, return true.

           for (i = 0; i < s.length; i++)
           {
                // Check that current character isn't whitespace.
                var c = s.charAt(i);

                if (whitespace.indexOf(c) == -1) return false;
           }

           // All characters are whitespace.
           return true;
      }

      /****************************************************************/

      function ForceEntry(val, str, flag) {
	  	if (!flag || val==null)
			return false;

        var strInput = new String(val.value);

        if (isWhitespace(strInput)) {
        	alert(str);
			val.focus();
            
			return false;
        } else
        	return true;
      }

      /****************************************************************/

      function checkNum(val, str, flag) {
	   if (!flag)
		return false;

           if (isNaN(val.value)) {
                alert(str);
				val.focus();
                return false;
           } else
                return true;

      }
	  
	  function checkCharOnly(val, str, flag) {
		if (!flag)
			return false;
			
		if (val.value.search(/^[a-zA-Z]+$/) == -1) {
			alert(str);
			val.focus();
			return false;
		} else
			return true;
	}
	  
	  function checkNormalCharOnly(val, str, flag) {
		if (!flag)
			return false;
			
		if (val.value.search("<")!=-1 || val.value.search(">")!=-1 || val.value.search("\"")!=-1 || val.value.search("'")!=-1) {
			alert(str);
			val.focus();
			return false;
		} else
			return true;
	}
	  

	function checkStringLen(val, str, flag, lmin, lmax) {
		if (!flag)
			return false;
			
		if (val.value.length < lmin || val.value.length > lmax) {
			alert(str);
			val.focus();
			return false;
		} else
			return true;
	}
	  

	function checkValidEmail(val, str, flag) {
		if (!flag)
			return false;
			
		if (val.value.search(/^\w+((-\w+)|(\.\w+))*\@[A-Za-z0-9]+((\.|-)[A-Za-z0-9]+)*\.[A-Za-z0-9]+$/) == -1) {
			alert(str);
			val.focus();
			return false;
		} else
			return true;
	}
	
	/*
	function playBannerT(img, delay, ptr) {
		if (++ptr >= BannerTNum)
			ptr = 0;
		
		document[img].src = BannerT[ptr];
		window.setTimeout('playBannerT(\''+img+'\', '+delay+', '+ptr+');', delay);
	}
	//*/
	
	function chooseProductType(form, type) {
		if (type=="C") {
			flag = false;
		} else {
			flag = true;
		}
		
		// Cars
		form.brand.disabled = flag;
		form.model.disabled = flag;
		form.color.disabled = flag;
		form.style.disabled = flag;
		form.transmission.disabled = flag;
		form.import_type.disabled = flag;
		form.first_reg.disabled = flag;
		form.manufactured_year.disabled = flag;
		form.gov_licence_yr.disabled = flag;
		form.gov_licence_mn.disabled = flag;
		form.capacity.disabled = flag;
		form.volumn.disabled = flag;
		form.owned_num.disabled = flag;
		form.miles.disabled = flag;
		
		// Parts
		form.compatible.disabled = !flag;
		form.condition.disabled = !flag;
	}
	
	
	function playBannerT(img, delay, ptr) {
		//if (++ptr >= BannerTNum)
		//	ptr = 0;

		while (ptr >= BannerTNum) {
				ptr -= BannerTNum;
		}

		var banner = document.getElementById('topBanner');

		if (BannerT[ptr].indexOf('.swf')>=0) {
			banner.innerHTML = '<a href="#" target="_blank"><object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" ' + 
				'codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=7,0,19,0" width="728" height="90">' +
				'<param name="movie" value="' + BannerT[ptr] + '">' + '<param name="quality" value="high">' +
				'<embed src="' + BannerT[ptr] + '" quality="high" pluginspage="http://www.macromedia.com/go/getflashplayer" ' +
				'type="application/x-shockwave-flash" width="728" height="90"></embed></object></a>' +
				'<script language="JavaScript" type="text/javascript"> if (BannerTNum>0) playBannerT("banner_1", 5000, 0); </script>';
		} else {
			banner.innerHTML = '<a href="'+BannerTURL[ptr]+'" target="_blank"><img src="' + BannerT[ptr] + '" name="banner_1" width="728" height="90" id="banner_1" border="0"></a>' +
				'<script language="JavaScript" type="text/javascript"> if (BannerTNum>0) playBannerT("banner_1", 5000, 0); </script>';
		}
		
		//document[img].src = BannerT[ptr];
		if (delay!=-1)
			window.setTimeout('playBannerT(\''+img+'\', '+delay+', '+ptr+');', delay);
	}
	
	/*
	function playBannerB(img, delay, ptr, len) {
		if (++ptr >= BannerBNum)
			ptr = 0;
		
		document[img].src = BannerB[ptr];
		window.setTimeout('playBannerB(\''+img+'\', '+delay+', '+ptr+');', delay);
	}
	*/
	
	function playBannerB(img, delay, ptr) {
		//if (++ptr >= BannerBNum)
		//	ptr = 0;

		while (ptr >= BannerBNum) {
				ptr -= BannerBNum;
		}

		var banner = document.getElementById('btmBanner');

		if (BannerB[ptr].indexOf('.swf')>=0) {
			banner.innerHTML = '<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" ' + 
				'codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=7,0,19,0" width="728" height="90">' +
				'<param name="movie" value="' + BannerB[ptr] + '">' + '<param name="quality" value="high">' +
				'<embed src="' + BannerB[ptr] + '" quality="high" pluginspage="http://www.macromedia.com/go/getflashplayer" ' +
				'type="application/x-shockwave-flash" width="728" height="90"></embed></object>' +
				'<script language="JavaScript" type="text/javascript"> if (BannerBNum>0) playBannerB("banner_2", 5000, 0); </script>';
		} else {
			banner.innerHTML = '<a href="'+BannerBURL[ptr]+'" target="_blank"><img src="' + BannerB[ptr] + '" name="banner_2" width="728" height="90" id="banner_2" border="0"></a>' +
				'<script language="JavaScript" type="text/javascript"> if (BannerBNum>0) playBannerB("banner_2", 5000, 0); </script>';
		}
		
		//document[img].src = BannerB[ptr];
		if (delay!=-1)
			window.setTimeout('playBannerB(\''+img+'\', '+delay+', '+ptr+');', delay);
	}
	      


	function product_validate(lang) {
		var flag = false;
		with (document.productform) {
			flag = true;
			
			//alert(lang+"!");
			
			flag = ForceEntry(Product_Name, "Please Enter Product Name", flag);
			//if (lang=="SC")
			//	flag = ForceEntry(Product_Name_SC, "Please Enter Product Name (SC)", flag);
			//else
				//flag = ForceEntry(Product_Name_TC, "Please Enter Product Name (TC)", flag);
			//flag = ForceEntry(Product_Name_Chi, "Please Enter Product Name (Chinese)", flag);
			flag = ForceEntry(Product_Price, "Please Enter Product Price", flag);
			flag = checkNum(Product_Price, "Please Enter Numerical Product Price", flag);
			//flag = ForceEntry(Exp_Date, "Please Select the Expiry Date", flag);
			
			var cat = document.getElementsByName('Cat_ID');
			//alert(cat.length+" : "+cat[0].selectedIndex+" - "+cat[1].selectedIndex);
			if (cat.length>1) {
				var curCat;
				
				for (var i=0; i < item_type.length; i++) {
					if (item_type[i].checked) {
						if (item_type[i].value=="C") {
							curCat = cat[0];
							cat[1].selectedIndex = cat[0].selectedIndex;
							cat[1].value = cat[0].value;
						} else {
							curCat = cat[1];
							cat[0].selectedIndex = cat[1].selectedIndex;
							cat[0].value = cat[1].value;
						}
							
						break;
					}
				}
					
				if (flag && curCat.value==-1) {
					curCat.focus();
					alert("Please select a valid category");
					flag = false;
				}
			} else {
				if (flag && cat[0].value==-1) {
					cat[0].focus();
					alert("Please select a valid category");
					flag = false;
				}
			}
			
			// get show email and tel status
			for (i=0; i<2; i++){
				if(showEmail[i].checked) var showEmailFlag = showEmail[i].value;
				if(showTel[i].checked) var showTelFlag = showTel[i].value;
			}
			
			// check images
			for (i=0;i<document.productform.elements.length;i++) {
				if (document.productform.elements[i].name=='images[]')
					flag = checkImage(document.productform.elements[i]);
				
				if (!flag)
					break;
			}

			
			if (showEmailFlag!='1' && showTelFlag!='1') {
				flag = false;
				showEmail.fouce = true;
				alert("Please show either your email adress or contact number");
			}
		}

		return flag;
	}
	
	
	function search_validate(searchbox) {
		var flag = false;

		if (searchbox=="top") {
			with (document.topsearchform) {
				flag = true;
			
				//flag = ForceEntry(keyword, "Please Enter the keyword for searching", flag);
			}
		} else {
			with (document.searchform) {
				flag = true;
			
				if (!isWhitespace(id.value))		// search keywords if ID is not entered
					flag = checkNum(id, "Please Enter the ID with numeric values only", flag);
				//else if (isWhitespace(keyword.value) && isWhitespace(model.value))		// search keywords if ID is not entered
				//	flag = ForceEntry(keyword, "Please Enter the keyword for searching", flag);
				
				if (flag) {
					/*
					if (!isWhitespace(lowerPrice.value) || !isWhitespace(upperPrice.value)) {
						if (!isWhitespace(lowerPrice.value) && !isWhitespace(upperPrice.value)) {
							flag = checkNum(lowerPrice, "Please Enter Numerical value for Price Range", flag);
							flag = checkNum(upperPrice, "Please Enter Numerical value for Price Range", flag);
						} else {
							flag = false;
							alert("Please Enter the price range (lower and upper)");
							lowerPrice.focus();
						}
					}
					//*/
					
					if (!isWhitespace(lowerMiles.value) || !isWhitespace(upperMiles.value)) {
						if (!isWhitespace(lowerMiles.value) && !isWhitespace(upperMiles.value)) {
							flag = checkNum(lowerMiles, "Please Enter Numerical value for Miles Range", flag);
							flag = checkNum(upperMiles, "Please Enter Numerical value for Miles Range", flag);
						} else {
							flag = false;
							alert("Please Enter the Miles range (lower and upper)");
							lowerMiles.focus();
						}
					}
					
					/*
					if (!isWhitespace(lowerVolumn.value) || !isWhitespace(upperVolumn.value)) {
						if (!isWhitespace(lowerVolumn.value) && !isWhitespace(upperVolumn.value)) {
							flag = checkNum(lowerVolumn, "Please Enter Numerical value for engine volumn Range", flag);
							flag = checkNum(upperVolumn, "Please Enter Numerical value for engine volumn Range", flag);
						} else {
							flag = false;
							alert("Please Enter the engine volumn range (lower and upper)");
							lowerVolumn.focus();
						}
					}
					
					if (!isWhitespace(lowerCapacity.value) || !isWhitespace(upperCapacity.value)) {
						if (!isWhitespace(lowerCapacity.value) && !isWhitespace(upperCapacity.value)) {
							flag = checkNum(lowerCapacity, "Please Enter Numerical value for Capacity Range", flag);
							flag = checkNum(upperCapacity, "Please Enter Numerical value for Capacity Range", flag);
						} else {
							flag = false;
							alert("Please Enter the Capacity range (lower and upper)");
							lowerCapacity.focus();
						}
					}
					
					if (!isWhitespace(lowerMYr.value) || !isWhitespace(upperMYr.value)) {
						if (!isWhitespace(lowerMYr.value) && !isWhitespace(upperMYr.value)) {
							flag = checkNum(lowerMYr, "Please Enter Numerical value for Manufactured Year Range", flag);
							flag = checkNum(upperMYr, "Please Enter Numerical value for Manufactured Year Range", flag);
						} else {
							flag = false;
							alert("Please Enter the Manufactured Year range (lower and upper)");
							lowerMYr.focus();
						}
					}
					
					if (!isWhitespace(lowerFReg.value) || !isWhitespace(upperFReg.value)) {
						if (!isWhitespace(lowerFReg.value) && !isWhitespace(upperFReg.value)) {
							flag = checkNum(lowerFReg, "Please Enter Numerical value for First Registration Year Range", flag);
							flag = checkNum(upperFReg, "Please Enter Numerical value for First Registration Year Range", flag);
						} else {
							flag = false;
							alert("Please Enter the First Registration Year range (lower and upper)");
							lowerFReg.focus();
						}
					}
					//*/
				}
			}
		}

		return flag;
	}
	
	
	function companyreg_validate() {
		var flag = false;
		with (document.userregform) {			
			flag = true;
			
			flag = checkValidEmail(email, "Please enter a valid email address", flag);
			//flag = ForceEntry(login, "Please enter the login name", flag);
			//flag = checkCharOnly(login, "The login name can only contains characters (i.e. a-z)", flag);
			//flag = checkNormalCharOnly(login, "The login name cannot contains - <, >, \', \"", flag);
			//flag = checkStringLen(login, "The login name should be 4-10 characters", flag, 4, 10);
			
			flag = ForceEntry(passwd1, "Please enter the password", flag);	
			flag = checkStringLen(passwd1, "The password should be 4-15 characters", flag, 4, 15);
			//flag = checkCharOnly(passwd1, "The password can only contains characters (i.e. a-z)", flag);
			
			flag = ForceEntry(passwd2, "Please enter the confirm password", flag);	
			flag = checkStringLen(passwd2, "The confirm password should be 4-15 characters", flag, 4, 15);
			//flag = checkCharOnly(passwd2, "The confirm password can only contains characters (i.e. a-z)", flag);
			
			if (passwd1.value != passwd2.value && flag) {
				flag = false;
				alert("The password and confirm password are not the same");
				passwd1.focus();
			}
			
			flag = ForceEntry(name, "Please enter Company Name", flag);
			//flag = ForceEntry(chi_name, "Please enter Company Name (Chinese)", flag);
			flag = ForceEntry(cTel, "Please enter your contact no. (Company)", flag);
			flag = ForceEntry(conPerson, "Please enter the Contact person", flag);
			flag = ForceEntry(tel, "Please enter your contact no.", flag);			
			flag = ForceEntry(br, "Please enter your Business Registration no.", flag);
			
			//flag = checkNum(tel, "Please enter a valid mobile phone number", flag);
			//flag = ForceEntry(address, "Please enter your address", flag);
		}
		
		return flag;
	}
	
	
	function personalreg_validate() {
		var flag = false;
		with (document.userregform) {			
			flag = true;
			
			flag = checkValidEmail(email, "Please enter a valid email address", flag);
			//flag = ForceEntry(login, "Please enter the login name", flag);
			//flag = checkCharOnly(login, "The login name can only contains characters (i.e. a-z)", flag);
			//flag = checkNormalCharOnly(login, "The login name cannot contains - <, >, \', \"", flag);
			//flag = checkStringLen(login, "The login name should be 4-10 characters", flag, 4, 10);
			
			flag = ForceEntry(passwd1, "Please enter the password", flag);	
			flag = checkStringLen(passwd1, "The password should be 4-15 characters", flag, 4, 15);
			//flag = checkCharOnly(passwd1, "The password can only contains characters (i.e. a-z)", flag);
			
			flag = ForceEntry(passwd2, "Please enter the confirm password", flag);	
			flag = checkStringLen(passwd2, "The confirm password should be 4-15 characters", flag, 4, 15);
			//flag = checkCharOnly(passwd2, "The confirm password can only contains characters (i.e. a-z)", flag);
			
			if (passwd1.value != passwd2.value && flag) {
				flag = false;
				alert("The password and confirm password are not the same");
				passwd1.focus();
			}
			
			flag = ForceEntry(name, "Please enter your name", flag);
			//flag = ForceEntry(chi_name, "Please enter your Chinese name", flag);
			flag = ForceEntry(tel, "Please enter your contact no.", flag);
			
			//flag = checkNum(tel, "Please enter a valid mobile phone number", flag);
			//flag = ForceEntry(address, "Please enter your address", flag);
		}
		
		return flag;
	}
	
	
	function useredit_validate() {
		var flag = false;
		with (document.usereditform) {			
			flag = true;
			
			if (!isWhitespace(passwd1.value) || !isWhitespace(passwd2.value)) {
				flag = ForceEntry(passwd1, "Please enter the password", flag);	
				flag = checkStringLen(passwd1, "The password should be 4-15 characters", flag, 4, 15);
				//flag = checkCharOnly(passwd1, "The password can only contains characters (i.e. a-z)", flag);
			
				flag = ForceEntry(passwd2, "Please enter the confirm password", flag);	
				flag = checkStringLen(passwd2, "The confirm password should be 4-15 characters", flag, 4, 15);
				//flag = checkCharOnly(passwd2, "The confirm password can only contains characters (i.e. a-z)", flag);
			
				if (passwd1.value != passwd2.value && flag) {
					flag = false;
					alert("The password and confirm password are not the same");
					passwd1.focus();
				}
			}
			
			
			if (flag) {
				if (type.value=="C") {
					flag = ForceEntry(name, "Please enter the Company Name", flag);
					//flag = ForceEntry(chi_name, "Please enter the Company Name (Chinese)", flag);
					flag = ForceEntry(cTel, "Please enter your contact no. (Company)", flag);
					flag = ForceEntry(conPerson, "Please enter the Contact person", flag);
					flag = ForceEntry(br, "Please enter your Business Registration no.", flag);
				} else if (type.value=="P") {
					flag = ForceEntry(name, "Please enter your name", flag);
					//flag = ForceEntry(chi_name, "Please enter your Chinese name", flag);
				}
			}
			
			flag = ForceEntry(tel, "Please enter your contact no.", flag);
			
			//flag = checkNum(tel, "Please enter a valid mobile phone number", flag);
			//flag = checkValidEmail(email, "Please enter a valid email address", flag);
			//flag = ForceEntry(address, "Please enter your address", flag);
		}
		
		return flag;
	}
	
	function regRedirect() {
		window.location = "index.php";
	}
	
	
	function checkImage(fileField, img) {
		if (fileField.value.indexOf('.jpg')==-1 && fileField.value.indexOf('.JPG')==-1 
			&& fileField.value.indexOf('.jpeg')==-1 && fileField.value.indexOf('.JPEG')==-1 
			&& fileField.value.indexOf('.gif')==-1 && fileField.value.indexOf('.GIF')==-1) {
				alert ('Only support JPG and GIF images!');
				fileField.value = "";
		}
				   
		if (!isEmpty(fileField.value))
			img.src = fileField.value;
		else
			img.src = 'images/trans_120.gif';
	}
	
	function checkImage(fileField) {
		if (fileField.value.indexOf('.jpg')==-1 && fileField.value.indexOf('.JPG')==-1 
			&& fileField.value.indexOf('.jpeg')==-1 && fileField.value.indexOf('.JPEG')==-1 
			&& fileField.value.indexOf('.gif')==-1 && fileField.value.indexOf('.GIF')==-1 && !isEmpty(fileField.value)) {
				alert ('Only support JPG and GIF images!');
				return false;
		} else
			return true;
	}
//-->
