	function build_prov_menu(code){

		_ajax = new Ajax.Request(

			'sysCMS/includes/prov_city_menu.php',

			{

				method : 'post',

				parameters : 'code=' + code +'& level=prov',

				onComplete : function(req, json)

				{

					$('province').options.length = 0;

					buildMenuList($('province'), json);

					$('city').options.length = 0;

					$('city')[0] = new Option('Other', '0');

				}

			}

		);

	}

	function build_city_menu(code){

		_ajax = new Ajax.Request(

			'sysCMS/includes/prov_city_menu.php',

			{

				method : 'post',

				parameters : 'code=' + code +'& level=city',

				onComplete : function(req, json)

				{

					$('city').options.length = 0;

					buildMenuList($('city'), json);

				}

			}

		);

	}



	function buildMenuList(menu, opts)

	{

		for(i=0;i<opts.length;i++)

		{

			menu[i] = new Option(opts[i].title, opts[i].code);

		}

	}

	function checkForm(thisform, mode) {

		return_value = true;

		error_message = "";

		var emailRe = /^[^@]+@[^@.]+\.[^@]*\w\w$/;

		var phoneRe = /^[1-9]\d{2}\-\d{3}\-\d{4}$/;

		var passwordRe = /^[a-zA-Z0-9]+$/;

		var whitespaceRe = /^\s*|\s*$/g;

		with(thisform){

			switch (mode) {

			case 0:

				if (thisform.n_password1.value != null && (thisform.n_password1.value.length == 0 || !thisform.n_password1.value.match(passwordRe))) {

					error_message += "* Your Password must contain a minimum of 3-16 characters!\n";

					return_value = false;

				}

				else if(thisform.n_password1.value != null && (thisform.n_password1.value.length >16 || thisform.n_password1.value.length <3)){

					error_message += "* Your Password must contain a minimum of 3-16 characters!\n";

					return_value = false;

				}

				if ((thisform.n_password1.value != null && thisform.n_password2.value != null )&& (thisform.n_password1.value != thisform.n_password2.value )) {

					error_message += "* Please Confirm your Password!\n";

					return_value = false;

				}

				break;

			case 1:

				if (thisform.email.value.length == 0 || !thisform.email.value.match(emailRe)) {

					error_message += "* Your E-Mail Address is incorrect format!\n";

					return_value = false;

				}

				if (!thisform.password.value.match(passwordRe)) {

					error_message += "* Your Password is incorrect format!\n";

					return_value = false;

				}

				else if(thisform.password.value.length >16 || thisform.password.value.length <3){

					error_message += "* Your Password must contain a minimum of 3-16 characters!\n";

					return_value = false;

				}

				if (thisform.password.value != thisform.conf_password.value ) {

					error_message += "* Please Confirm your Password!\n";

					return_value = false;

				}

				thisform.first_name.value = (thisform.first_name.value).replace(whitespaceRe,'');

				if (thisform.first_name.value.length == 0) {

					error_message += "* Your First Name must contain a minimum of 2 characters!\n";

					return_value = false;

				}

				thisform.last_name.value = (thisform.last_name.value).replace(whitespaceRe,'');

				if (thisform.last_name.value.length == 0) {

					error_message += "* Your Last Name must contain a minimum of 2 characters!\n";

					return_value = false;

				}

				thisform.phone.value = (thisform.phone.value).replace(whitespaceRe,'');

				if (thisform.phone.value.length == 0 ) {

					error_message += "* Your Phone Number must cantain a minimum of 3 characters!\n";

					return_value = false;

				}

				thisform.address.value = (thisform.address.value).replace(whitespaceRe,'');

				if(thisform.address.value.length ==0){

					error_message += "* Please Enter Address.\n";

					return_value = false;

				}

				if(thisform.country.options.selectedIndex ==0){

					error_message += "* Please Select the Country.\n";

					return_value = false;

				}

				thisform.province_text.value = (thisform.province_text.value).replace(whitespaceRe,'');

				if(thisform.province.options.selectedIndex ==0 && thisform.province_text.value.length ==0){

					error_message += "* Please Select or Input your Province/State name.\n";

					return_value = false;

				}

				thisform.city_text.value = (thisform.city_text.value).replace(whitespaceRe,'');

				if(thisform.city.options.selectedIndex ==0 && thisform.city_text.value.length ==0){

					error_message += "* Please Select or Input your City name.\n";

					return_value = false;

				}

				thisform.postal_code.value = (thisform.postal_code.value).replace(whitespaceRe,'');

				if(thisform.postal_code.value.length ==0){

					error_message += "* Please Enter Postal Code.\n";

					return_value = false;

				}

				break;

			case 2:

				if (thisform.name.value != null && thisform.name.value.length == 0) {

					error_message += "Please Enter Contact Name!\n";

					return_value = false;

				}

				if (thisform.phone.value != null && (thisform.phone.value.length == 0)) {

					error_message += "* Please Enter Phone Number!\n";

					return_value = false;

				}

				if (thisform.phone.value != null && (thisform.address.value.length == 0)) {

				error_message += "* Please Enter your Address!\n";

				return_value = false;

				}

				if(thisform.country.options.selectedIndex ==0){

					error_message += "* Please Select your Country.\n";

					return_value = false;

				}

				if(thisform.province_text.value != null){

					thisform.province_text.value = (thisform.province_text.value).replace(whitespaceRe,'');

					if(thisform.province.options.selectedIndex ==0 && thisform.province_text.value.length ==0){

						error_message += "* Please Select or Input your Province/State.\n";

						return_value = false;

					}

				}



				if(thisform.city_text.value != null){

					thisform.city_text.value = (thisform.city_text.value).replace(whitespaceRe,'');

					if(thisform.city.options.selectedIndex ==0 && thisform.city_text.value.length ==0){

						error_message += "* Please Select or Input your City.\n";

						return_value = false;

					}

				}



				if (thisform.postal_code.value != null && (thisform.postal_code.value.length == 0 || thisform.postal_code.value.length > 9)) {

					error_message += "* Please Enter Postal Code in correct format!\n";

					return_value = false;

				}

				break;

			case 3:  //check email's validation for reset email and newsletter

				if (thisform.email.value.length == 0 || !thisform.email.value.match(emailRe)) {

					error_message += "* Your Email Address is incorrect format!\n";

					return_value = false;

				}



				break;

			case 4:

				if(getCheckedValue(thisform.shipping) == ""){

					error_message += "* Please Choose a shipping method!\n";

					return_value = false;

				}

				break;

			case 5:

				 if (thisform.email.value.length == 0 || !thisform.email.value.match(emailRe)) {

					error_message += "* Your E-Mail Address is incorrect format!\n";

					return_value = false;

				}

				if (!thisform.password.value.match(passwordRe)) {

					error_message += "* Your Password not match!\n";

					return_value = false;

				}

				else if(thisform.password.value.length >16 || thisform.password.value.length <3){

					error_message += "* Your Password must contain a minimum of 3-16 characters!\n";

					return_value = false;

				}

				break;



			case 6:  //verify email_oil_painting.php inputs



				thisform.sendersName.value = (thisform.sendersName.value).replace(whitespaceRe,'');

				if (thisform.sendersName.value.length == 0) {

					error_message += "* Please Input Sender Name!\n";

					return_value = false;

				}





				if (thisform.sendersEmail.value.length == 0 || !thisform.sendersEmail.value.match(emailRe)) {

					error_message += "* Please Input Sender Email Address in correct format!\n";

					return_value = false;

				}





				if (thisform.recipientsEmail.value.length == 0 || !thisform.recipientsEmail.value.match(emailRe)) {

					error_message += "* Please Enter Recipients Email Address!\n";

					return_value = false;

				}



				thisform.emailTitle.value = (thisform.emailTitle.value).replace(whitespaceRe,'');

				if (thisform.emailTitle.value.length == 0) {

					error_message += "* Please Input Message Title!\n";

					return_value = false;

				}

				if (thisform.CONTENT.value.length == 0 ) {

					error_message += "* Please Enter Your Message!\n";

					return_value = false;

				}



				break;

			case 7:

				if (thisform.sendersName.value.length == 0 ) {

					error_message += "* Please Enter Your Name\n";

					return_value = false;

				}

				if (thisform.reviewTitle.value.length == 0) {

					error_message += "* Please Enter Comment Title\n";

					return_value = false;

				}

				break;



			case 8:

				if (thisform.email.value.length == 0 || !thisform.email.value.match(emailRe)) {

					error_message += "* Your Email Address is incorrect format!\n";

					return_value = false;

				}

				if (thisform.message.value.length == 0 ) {

					error_message += "* Please Enter Your Inquiry message!\n";

					return_value = false;

				}

				break;



			}

		}



		if (return_value == false) {

			alert(error_message);

		}



		return return_value;

	}



function Each(list, fun){

    for (var i = 0, len = list.length; i < len; i++) { fun(list[i], i); }

};





function closeAllmenu(){

	Each(document.getElementById("menu").getElementsByTagName("li"), function(o){

	        var ul = o.getElementsByTagName("ul")[0];

	        if(ul){ 

	        	ul.style.display = "none"; 

	        }

	})

}



function openAllmenu(){

	Each(document.getElementById("menu").getElementsByTagName("li"), function(o){

	        var ul = o.getElementsByTagName("ul")[0];

	        if(ul){ 

	        	ul.style.display = ""; 

	        }

	})

}



function delete_word(frmObject,intValue){

	  if(frmObject.value == intValue){

		frmObject.value = "";

	  }

	}



	function add_word(frmObject,intValue){

	  if(frmObject.value.length < 1){

		frmObject.value = intValue;

	  }

	}



	function setCookie (name, value, path, domain, secure, expires)

	{

	    document.cookie= name + "=" + escape(value) +

	        ((expires) ? "; expires=" + expires.toGMTString() : "") +

	        ((path) ? "; path=" + path : "") +

	        ((domain) ? "; domain=" + domain : "") +

	        ((secure) ? "; secure" : "");

	}



	function getCookie (name)

	{

	    var dc = document.cookie;

	    var prefix = name + "=";

	    var begin = dc.indexOf("; " + prefix);

	    if (begin == -1)

	    {

	        begin = dc.indexOf(prefix);

	        if (begin != 0) return null;

	    }

	    else

	    {

	        begin += 2;

	    }

	    var end = document.cookie.indexOf(";", begin);

	    if (end == -1)

	    {

	        end = dc.length;

	    }

	    return unescape(dc.substring(begin + prefix.length, end));

	}



	function deleteCookie (name, path, domain)

	{

	    if (getCookie(name))

	    {

	        document.cookie = name + "=" +

	            ((path) ? "; path=" + path : "") +

	            ((domain) ? "; domain=" + domain : "") +

	            "; expires=Thu, 01-Jan-70 00:00:01 GMT";

	    }

	}



	function inputRestriction(matchString, e){

		var unicode=e.charCode? e.charCode : e.keyCode;

		if (unicode!=8){

			if(!String.fromCharCode(unicode).match(matchString))

			return false

		}

	}


	function intOnly(e){

		var matchString = new RegExp("[0-9]");

		return inputRestriction(matchString, e);

	}



	function intonly15(e){

		var matchString = new RegExp("[1-5]");

		return input_restriction(matchString, e);

	}



	function getCheckedValue(radioObj) {

		if(!radioObj)

			return "";

		var radioLength = radioObj.length;

		if(radioLength == undefined)

			if(radioObj.checked)

				return radioObj.value;

			else

				return "";

		for(var i = 0; i < radioLength; i++) {

			if(radioObj[i].checked) {

				return radioObj[i].value;

			}

		}

		return "";

	}





	function checkKeyword(thisform) {

		return_value = true;

		error_message = "";

		var whitespaceRe = /^\s*|\s*$/g;

		with(thisform){

			thisform.kr.value = (thisform.kr.value).replace(whitespaceRe,'');

			if(thisform.kr.value.length == 0 || thisform.kr.value == 'Search here'){

				error_message += "* You forgot type search keyword.";

				return_value = false;

			}

		}

		if (return_value == false) {

			alert(error_message);

		}

		return return_value;

	}



	function showMenu() {

		var menu = document.getElementById('subSupport');

		menu.style.display = 'inline';

	}



	function hideMenu() {

		var menu = document.getElementById('subSupport');

		menu.style.display = 'none';

	}



	function addLoadEvent (func)

	{

	    var oldonload = window.onload;

	    if (typeof window.onload != 'function')

	    {

	        window.onload = func;

	    }

	    else

	    {

	        window.onload = function()

	        {

	            oldonload();

	            func();

	        }

	    }

	}





	function menu_init ()

	{

		var menu = document.getElementById('nav');

		var subs = menu.childNodes;



		var j = 0;



		for (var i=0 ; subs[i]; i++)

		{

			if (subs[i].tagName=='LI')

			{

				hs = subs[i].getElementsByTagName('A');

				heading = hs[0];

				ss = subs[i].getElementsByTagName('UL');

				submenu = ss[0];



				j++;



				heading.onclick = function () { menu_toggle(this); };



				if (getCookie('menu'+j)=='1')

					 submenu.style.display = 'block';

				else if (getCookie('menu'+j)=='0')

					submenu.style.display = 'none';

				else if (j==1)

					submenu.style.display = 'block';

				else

					submenu.style.display = 'none';

			}

		}

	}



	function menu_toggle (heading)

	{

		var section = heading.parentNode;

		var submenus = section.getElementsByTagName('UL');

		var submenu = submenus[0];



		if (submenu.style.display=='none')

			submenu.style.display = 'block';

		else

			submenu.style.display = 'none';



		var j = 0;



		var menu = document.getElementById('nav');

		var subs = menu.childNodes;

		for (var i=0 ; subs[i]; i++)

		{

			if (subs[i].tagName=='LI')

			{

				hs = subs[i].getElementsByTagName('A');

				h = hs[0];

				j++;



				if (h==heading && submenu.style.display=='none')

					setCookie('menu'+j, '0', '/');

				else if (h==heading)

					setCookie('menu'+j, '1', '/');

			}

		}





	}

	function displaylist() {

	      if(div2.style.display=="none") {

	                 div2.style.display="";

	      } else {

	                 div2.style.display="none";

	        }

	}



	function setValue(v){

		document.detailform.toWishList.value=v;



				if(document.detailform.attributeV.value==0)

				{			    

					alert( "* Please Choose a proper Size for this order.");

					return false;			

				}	

				else{

					document.detailform.submit();

				}



	}



	function setValueReview(v){

		document.reviewdata.fromReview.value=v;

		document.reviewdata.submit();

	}



	function gbcount(message,total,used,remain)

	{

		var max;

		max = total.value;

		if (message.value.length > max) {

		message.value = message.value.substring(0,max);

		used.value = max;

		remain.value = 0;

		alert("* We only accept "+total.value+" characters for this field!");

		}

		else {

		used.value = message.value.length;

		remain.value = max - used.value;

		}

	}





	function switch_currency(selObj,Self_page){

		if(selObj.options[selObj.selectedIndex].value != ""){

			window.top.location.href='exchange_rate.php?currency='+selObj[selObj.selectedIndex].value+'&fromPage='+Self_page;

		}

	}



	function validate_coupon(coupon_code_field, coupon_ID_field){



		if(coupon_ID_field.value == null){



			coupon_ID_str = coupon_ID_field[0].value;

			for(i=1; i<coupon_ID_field.length;i++){

				coupon_ID_str = coupon_ID_str +"|"+coupon_ID_field[i].value;

			}

		}

		else{

			coupon_ID_str = coupon_ID_field.value;

		}



		_ajax = new Ajax.Request(

			'sysCMS/ajax.php',

			{

				method : 'post',

				parameters : 'callID=19&coupon_code=' + coupon_code_field.value +'&coupon_ID='+coupon_ID_str,

				onLoading:loading,

				onComplete:ShowResult

			}

		);

	}



function fillAddress() {

		document.f1.company2.value = document.f1.company.value;

		document.f1.fname2.value = document.f1.fname.value;

		document.f1.lname2.value = document.f1.lname.value;

		document.f1.address2.value = document.f1.address.value;

		document.f1.city2.value = document.f1.city.value;

		document.f1.prov2.value = document.f1.prov.value;

		document.f1.postal2.value = document.f1.postal.value;

		document.f1.country2.value = document.f1.country.value;

		document.f1.phone2.value = document.f1.phone.value;

	}



	function checkform_order_value(thisform) {

		return_value = true;

		error_message = "";

		var QtyVal = /^[0-9]+$/;

		var resualt=false;

		with(thisform){

			

			if(thisform.quantity.value.length ==0 || thisform.quantity.value <= 0 || !thisform.quantity.value.match(QtyVal)){

				error_message += "* Please enter a proper quantity for this order.\n";

				return_value = false;

			}	

			

			for(var i=0;i<document.detailform.attributeV.length;i++)

			{   

			    if(document.detailform.attributeV[i].checked)

			    {

			      resualt=true;

			    }

			}

			if(!resualt)

			{			    

				error_message += "* Please select a size for this Item.";

				return_value = false;					

			}

					

		}

		if (return_value == false) {

			alert(error_message);

		}

		return return_value;

	}

	

	function checkform_order_value_opt(thisform) {

		return_value = true;

		error_message = "";

		var QtyVal = /^[0-9]+$/;

		var resualt=false;

		with(thisform){

			

			if(thisform.quantity.value.length ==0 || thisform.quantity.value <= 0 || !thisform.quantity.value.match(QtyVal)){

				error_message += "* Please enter a proper quantity for this order.\n";

				return_value = false;

			}	

			

			

/*			

			

			for(var i=0;i<document.detailform.attributeV.length;i++)

			{   

			    if(document.detailform.attributeV[i].checked)

			    {

			      resualt=true;

			    }

			}

			if(!resualt)

			{			    

				error_message += "* Please Choose a proper Size for this order.";

				return_value = false;					

			}

	*/



			

			 

			    if(document.detailform.attributeV.value!=0)

			    {

			      resualt=true;

			    }

			

			if(!resualt)

			{			    

				error_message += "* Please Choose a proper Size for this order.";

				return_value = false;					

			}

			

					

		}

		if (return_value == false) {

			alert(error_message);

		}

		return return_value;

	}	

	function loading(){

		$('ajax_msg').innerHTML = "Validating coupon code, please wait...";

	}



	function ShowResult(originalRequest){

		if(originalRequest.responseText.indexOf('|') != -1) {

			ret_msg = originalRequest.responseText.split('|');

			if(ret_msg[0] == "Pass"){

				$('coupon_validated').value = 1;

				$('ajax_msg').innerHTML = "<font color='green'>Coupon code validated. Click next to claim the discount.</font>";

				$('coupon_value').value = ret_msg[1];

			}

		}

		else{

			$('coupon_validated').value = 0;

			$('ajax_msg').innerHTML = "<font color='red'>The coupon code you entered is not valid. Please try another one.</font>";

		}

	}



	

	function showPic(whichpic) {

		var source = whichpic.getAttribute('href');

		

		var pic = document.getElementById('change_detail_image');

		var rr, rre; 

		rre = /showImages/i; 

		rr = source.replace(rre, "detail"); 

		pic.setAttribute('src', rr) ;







		

		var r, re,mover; 

		var s = whichpic.getAttribute('href');

		//re = /detail/i; 

		//r = s.replace(re, "showImages"); 				

		mover = "TJPzoom(this, '"+s+"');";	

		pic.setAttribute('onmouseover', mover) ;

		

		

		//var showpic = document.getElementById('change_show_image');	

		//showpic.setAttribute('href', mover) ;

		

		

		

	}



	

//coupon starts



	function validate_coupon1(coupon_code_field){

		_ajax = new Ajax.Request(

			'sysCMS/ajax.php',

			{

				method : 'post',

				parameters : 'callID=26&coupon_code=' + coupon_code_field.value,

				onLoading:loading1,

				onComplete:ShowResult1

			}

		);

	}



	function loading1(){

		$('ajax_msg').innerHTML = "Validating coupon code, please wait...";

	}



	function ShowResult1(originalRequest){

		if(originalRequest.responseText.indexOf('|') != -1) {

			ret_msg = originalRequest.responseText.split('|');

			if(ret_msg[0] == "Pass"){

				$('coupon_validated').value = 1;

				$('ajax_msg').innerHTML = "<font color='green'>Coupon code validated. Click [Check Out] to claim the extra discount.</font>";

				$('coupon_value').value = ret_msg[1];

				var disc = document.getElementById('discount');

				disc.style.display = 'inline';

				//discount.style.display="inline";

				discount_v.style.display="inline";

			}

		}

		else{

			$('coupon_validated').value = 0;

			$('ajax_msg').innerHTML = "<font color='red'>The coupon code you entered is not valid. Please try again.</font>";

			

			var disc = document.getElementById('discount');

			disc.style.display = 'none';

			//discount.style.display="inline";

			discount_v.style.display="none";	

			

		}

	}

//coupon ends

	function bookmark_us(url, title){

	if (window.sidebar) // firefox

	    window.sidebar.addPanel(title, url, "");

	else if(window.opera && window.print){ // opera

	    var elem = document.createElement('a');

	    elem.setAttribute('href',url);

	    elem.setAttribute('title',title);

	    elem.setAttribute('rel','sidebar');

	    elem.click();

	}

	else if(document.all)// ie

	    window.external.AddFavorite(url, title);

	}
