jQuery.validator.addMethod("alphanumeric", function(value, element) {
//    return this.optional(element) || /^\w[\w\d\s]*$/.test(value);
return this.optional(element) || /^[0-9a-z-.,\s]+$/i.test(value);
	}, "Letters, numbers, spaces or underscores only");  
	
jQuery.validator.addMethod("alphanumeric2", function(value, element) {
//    return this.optional(element) || /^\w[\w\d\s]*$/.test(value);
return this.optional(element) || /^[0-9a-z_]+$/i.test(value);
	}, "Letters, numbers or underscores only");  

$().ready(function() {
$("#sidebarfirst").validate({
		rules: {
			country:"required",
			city:"required",
			university:"required",
			course:"required",
			
			countrya:"required",
			citya:"required",
			package:"required",
			universitya:"required",
			coursea:"required"
		},
		
		messages: {
			country: { required:"*"},
			city: { required:"*"},
			university: { required:"*"},
			course: { required:"*"},
			
			countrya: { required:"*"},
			citya: { required:"*"},
			universitya: { required:"*"},
			package: { required:"*"},
			coursea: { required:"*"}

		}
	});
$("#sidebarsecond").validate({
		rules: {
			country:"required",
			city:"required",
			university:"required",
			course:"required",
			package:"required",
			
			countrya:"required",
			citya:"required",
			universitya:"required",
			coursea:"required"
		},
		
		messages: {
			country: { required:"*"},
			city: { required:"*"},
			university: { required:"*"},
			course: { required:"*"},
			
			package: { required:"*"},
			countrya: { required:"*"},
			citya: { required:"*"},
			universitya: { required:"*"},
			coursea: { required:"*"}

		}
	});

$("#sidebaradmin").validate({
		rules: {
			country:"required",
			city:"required",
			university:"required",
			course:"required",
			package:"required",
			
			countrya:"required",
			citya:"required",
			universitya:"required",
			coursea:"required"
		},
		
		messages: {
			country: { required:"*"},
			city: { required:"*"},
			university: { required:"*"},
			course: { required:"*"},
			
			package: { required:"*"},
			countrya: { required:"*"},
			citya: { required:"*"},
			universitya: { required:"*"},
			coursea: { required:"*"}

		}
	});

	$("#calc-form").validate({
		rules: {
			widthafter:{ 
				 required: true,
				 number: true
			},
			widthbefore:{ 
				 required: true,
				 number: true
			},
			diameterafter:{ 
				 required: true,
				 number: true
			},
			diameterbefore:{ 
				 required: true,
				 number: true
			},
			ratioafter:{ 
				 required: true,
				 number: true
			},
			ratiobefore:{ 
				 required: true,
				 number:true
			}
			
		},
		messages: {
			widthafter: {
				required:"Please enter the number",
				number:"Number!"
			},
			diameterafter: {
				required:"Please enter the number",
				number:"Number!"
			},
			ratioafter: {
				required:"Please enter the number",
				number:"Number!"
			},
			widthbefore: {
				required:"Please enter the number",
				number:"Number!"
			},
			diameterbefore: {
				required:"Please enter the number",
				number:"Number!"
			},
			ratiobefore: {
			    required:"Please enter the number",
				number:"Number!"
			}
		}
	});
	
	
	
	$("#contactform").validate({
		rules: {
			phone:{ 
				 required: true,
				 number: true
			},
			email:{ 
				required: true,
				email: true
			},
			msg:{ 
				 required: true
			},
			name:{ 
				 required: true,
				 minlength:3,
			}
			
		},
		messages: {
			phone: {
				required:"*",
				number:"*"
			},
			email: "*",
			msg: {
					required:"*"
			},
			name: {
			    required: "*",
				minlength: "*"
			}
		}
	});

	$("#paykonfirm-form").validate({
		rules: {
			nilaipembayaran:{ 
				 required: true,
				 number: true
			},
			id:{ 
				 required: true,
				 minlength:5,
				 number: true
			}
			
		},
		messages: {
			nilaipembayaran: {
				required:"Please enter the number",
				number:"Must be number"
			},
			id: {
			    required: "Please provide a phone number",
				minlength: "Please insert 5 digits",
				number: "Must be number"
			}
		}
	});
	
	// validate signup form on keyup and submit
	$("#regist-form").validate({
		rules: {
			name:{
				required:true,
				minlength: 3,
				alphanumeric:true
			},
			email: {
				required: true,
				email: true
			},
			password: {
				required: true,
				minlength: 5,
				alphanumeric2:true
			},
			confirmpassword: {
				required: true,
				minlength: 5,
				equalTo: "#password"
			},
			
			zipcode:{ 
				 required: true,
				 number: true
			},
			agree:"required",
			code:"required",
			province:"required",
			country:"required",
			city:"required",
			address:{
				required:true,
				minlength: 10,
				alphanumeric:true
			},
			oldpassword: {
				required: true,
				minlength: 5,	
				equalTo: "#password"
			},
			newpassword: {
				required: true,
				minlength: 5,
				alphanumeric2:true
			},
			phone:{
				required: true,
				number: true,
			},
			bod:"required",
			telephone:{ 
				 required: true,
				 number: true
			}
			
		},
		messages: {
			name: {
					required:"*",
					alphanumeric:"*"
			},

			password: {
				required: "*",
				minlength: "*",
				alphanumeric2:"*"
			},
			confirmpassword: {
				required: "*",
				minlength: "*",
				equalTo: "*"
			},
			email: "*",
			city: "*",
			bod:"*",
			agree: "*",
			address: "*",
			country: "*",
			code: "*",
			phone: {
			    required: "*",
				number: "*"
			}
		}
	});
	

	// propose username by combining first- and lastname
	$("#username").focus(function() {
		var firstname = $("#firstname").val();
		var lastname = $("#lastname").val();
		if(firstname && lastname && !this.value) {
			this.value = firstname + "." + lastname;
		}
	});
	
	// check if confirm password is still valid after password changed
	$("#password").blur(function() {
		$("#confirm_password").valid();
	});
	
	//code to hide topic selection, disable for demo
	var newsletter = $("#newsletter");
	// newsletter topics are optional, hide at first
	var inital = newsletter.is(":checked");
	var topics = $("#newsletter_topics")[inital ? "removeClass" : "addClass"]("gray");
	var topicInputs = topics.find("input").attr("disabled", !inital);
	// show when newsletter is checked
	newsletter.click(function() {
		topics[this.checked ? "removeClass" : "addClass"]("gray");
		topicInputs.attr("disabled", !this.checked);
	});

	$("#quizForm").validate({
		rules: {
			
			name: {
				required: true,
				alphanumeric:true
			},
			email: {
				required: true,
				email: true
			},
			
			phone:{ 
				 number: true,
				 required:true
			}
		},
		messages: {
			name: {
					required:"Please enter your fullname",
					alphanumeric:"Letters, numbers, spaces or underscores only"
			},
			email: "Please enter a valid email address",
			phone: {
			    required:"Please enter your phone number",
				number: "Must be number"
			},
			answer_0:"Please choose one answer",
			answer_1:"Please choose one answer",
			answer_2:"Please choose one answer"
		},
		errorElement: "span",
        wrapper: "span",  // a wrapper around the error message
        errorPlacement: function(error, element) {
            if (element.hasClass('ans')){
		        element = element.parent();
    		}
			offset = element.offset();
          	error.insertBefore(element);
			error.addClass('message');

           
			error.addClass('message');  // add a class to the wrapper
            error.css('position', 'absolute');
            error.css('left', offset.left + element.outerWidth());
            error.css('top', offset.top);
			
        }
		
	});
	
	
	
	$("#passwordform").validate({
		rules: {
			
			nowpass: {
				required: true,
				minlength: 6,
				alphanumeric2:true
			},
			newpass: {
				required: true,
				minlength: 6,
				alphanumeric2:true
			},
			newpass2: {
				required: true,
				minlength: 6,
				alphanumeric2:true,
				equalTo: "#newpass"
			},
			
		},
		messages: {
			
			
		}
	});
	
	$("#dealersubscribeform,#subscribeform").validate({
		rules: {
			
			email: {
				required: true,
				email:true
			}
			
		},
		messages: {
			email:"X"
			
		},
		submitHandler: function() { 
			dosubscribe();
		}
	});
});

function getXMLHttp()
	{
  		var xmlHttp
	  	try
	  	{
		//Firefox, Opera 8.0+, Safari
			xmlHttp = new XMLHttpRequest();
	  	}
	  	catch(e)
	  	{
		//Internet Explorer
			try
			{
		 		 xmlHttp = new ActiveXObject("Msxml2.XMLHTTP");
			}
			catch(e)
			{
		  		try
		 		{
					xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
		  		}
		  		catch(e)
		  		{
					alert("Your browser does not support AJAX!")
					return false;
		  		}
			}
	  	}
	  	return xmlHttp;
	}
	
	function get_point(page){
		
		
			var xmlHttp = getXMLHttp();
			xmlHttp.onreadystatechange = function()
			{
				if(xmlHttp.readyState == 4)
				{
				
				 document.getElementById("pointdiv").innerHTML=xmlHttp.responseText;
				 
				}
			}
			//xmlHttp.abort();	
			
	
			xmlHttp.open("GET", "/web/include/pointhistory.php?halaman="+page, true);
			xmlHttp.send(null);
		
	}

	function get_order(page){
		
		
			var xmlHttp = getXMLHttp();
			xmlHttp.onreadystatechange = function()
			{
				if(xmlHttp.readyState == 4)
				{
				
				 document.getElementById("orderdiv").innerHTML=xmlHttp.responseText;
				 
				}
			}
			//xmlHttp.abort();	
			
	
			xmlHttp.open("GET", "/web/include/myorder.php?halaman="+page, true);
			xmlHttp.send(null);
		
	}

	function update_date(i,id){
		var day1=document.getElementById('daystart'+i).value;
		var month1=document.getElementById('monthstart'+i).value;
		var day2=document.getElementById('dayend'+i).value;
		var month2=document.getElementById('monthend'+i).value;
		
		var xmlHttp = getXMLHttp();
  		xmlHttp.onreadystatechange = function()
  		{
    		if(xmlHttp.readyState == 4)
   	 		{
     		 HandleResponse2(xmlHttp.responseText);
    		}
  		}
  		//xmlHttp.abort();	
		

  		xmlHttp.open("GET", "/web/admin/lib/update_date.php?id="+id+"&day1="+day1+"&month1="+month1+"&day2="+day2+"&month2="+month2, true);
  		xmlHttp.send(null);
	}
	
	function HandleResponse2(response)
	{
	    eval(response);
	}



	function dosubscribe(){
		var email=document.getElementById("email").value;
		var xmlHttp = getXMLHttp();
  		xmlHttp.onreadystatechange = function()
  		{
    		if(xmlHttp.readyState == 4)
   	 		{
     		 alert(xmlHttp.responseText);
			 document.getElementById("email").value='';
    		}
  		}
  		//xmlHttp.abort();	
		

  		xmlHttp.open("GET", "/web/dosubscribe.php?email="+email, true);
  		xmlHttp.send(null);
	}
	
	
		function get_subcat(id){
		
		
			var xmlHttp = getXMLHttp();
			xmlHttp.onreadystatechange = function()
			{
				if(xmlHttp.readyState == 4)
				{
				
				 document.getElementById("subcatdiv").innerHTML=xmlHttp.responseText;
				 
				}
			}
			//xmlHttp.abort();	
			
	
			xmlHttp.open("GET", "lib/getsubcat.php?id="+id, true);
			xmlHttp.send(null);
		
	}
	
		function get_subcat2(id){
		
		
			var xmlHttp = getXMLHttp();
			xmlHttp.onreadystatechange = function()
			{
				if(xmlHttp.readyState == 4)
				{
				
				 document.getElementById("subcatdiv").innerHTML=xmlHttp.responseText;
				 
				}
			}
			//xmlHttp.abort();	
			
	
			xmlHttp.open("GET", "lib/getsubcat2.php?id="+id, true);
			xmlHttp.send(null);
		
	}
	

function check_quizlog(id){


	var xmlHttp = getXMLHttp();
	xmlHttp.onreadystatechange = function()
	{
		if(xmlHttp.readyState == 4)
		{
		
		// document.getElementById("notif").innerHTML=xmlHttp.responseText;
		 //setTimeout("window.location='/quiz'",2000);
		eval(xmlHTTP.responseText)
		}
	}
	//xmlHttp.abort();	
	

	xmlHttp.open("GET", "/include/check_quizlog/"+id, true);
	xmlHttp.send(null);

}
	function set_lang(lang)
		
		{ 
			var xmlHttp = getXMLHttp();
			//xmlHttp.abort();	
			xmlHttp.open("GET", "/web/include/set_lang.php?lang="+lang, true);
			setTimeout("location.reload()",300);
			xmlHttp.send(null);
		}
