// JavaScript Document
if(window.location.hostname == "localhost")
{
	var _ROOT = "http://"+window.location.hostname+"/bestreets/Code/";
	var _FOLDERROOT = "http://"+window.location.hostname+"/bestreets/Code/app/webroot/";
}
else
{
	var _ROOT = "http://"+window.location.hostname+"/";
	var _FOLDERROOT = "http://"+window.location.hostname+"/app/webroot/";
}


$(document).ready(function()
{
    $.validator.addMethod("alphaNumaric", function(value, element) {  
         return this.optional(element) || /^[a-z A-Z 0-9 /s]+$/.test(value); 
     }, "Please enter alphanumeric value only."); 

   $.validator.addMethod("alphabets", function(value, element) {  
         return this.optional(element) || /^[a-z A-Z /s]+$/.test(value); 
     }, "Please enter alphabets value only.");  
    
    $.validator.addMethod("COST", function(value, element) {
         return this.optional(element) || /^([1-9]{1})([0-9]{0,5})(\.[0-9]{0,2})?$/i.test(value);  
     }, "<div>Invalid credit card number.</div>");

      $.validator.addMethod("PRICE", function(value, element) {
        return this.optional(element) || /^[+]?[0-9]+(\.[0-9]+)?$/.test(value);
        }, "<div>Invalid Price.</div>");
	
	   $.validator.addMethod("PRICE_SPAN", function(value, element) {
        return this.optional(element) || /^[+]?[0-9]+(\.[0-9]+)?$/.test(value);
        }, "<span>Invalid Price.</span>");
        
       $.validator.addMethod("URL", function(value, element) {
        return this.optional(element) || /^(http|https):\/\/([a-z0-9-]\.+)*/i.test(value);
        }, "<div>Invalid Url.</div>");

	  
     $.validator.addMethod("DECIMAL", function(value, element) {
         return this.optional(element) || /^([1-9]{1,1})([0-9]+)?$/i.test(value);  
     }, "<div><br />Invalid credit card number.</div>");
		
	 $.validator.addMethod("Percentage", function(value, element) {  
         return this.optional(element) || /^([1-9]{1})([0-9]{0,1})(\.[0-9]{0,2})?$/i.test(value);  
     }, "<div>Invalid credit card number.</div>");
	 
	   $.validator.addMethod("NoSpace", function(value, element) {  

         return this.optional(element) || /^[^\s]+$/i.test(value);  

     }, "Spaces are not allowed.");

	 $.validator.addMethod("EMAIL", function(value, element) {  

         return this.optional(element) || /^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*\.(\w{2}|(com|net|org|edu|int|mil|gov|arpa|biz|aero|name|coop|info|pro|museum))$/i.test(value);  

     }, "Invalid Email"); 
	
	//Phone Number validation
	$.validator.addMethod("PhoneNumber", function(value, element) { 
	return this.optional(element) || /^((\+\d{1,3}(-| )?\(?\d\)?(-| )?\d{1,5})|(\(?\d{2,6}\)?))(-| )?(\d{3,4})(-| )?(\d{4})(( x| ext)\d{1,5}){0,1}$/i.test(value); 
	}, "Invalid Phone numbers.");

		$("#UserRegisterForm").validate({
		rules: {
                        "data[User][fname]": {required: true,  alphabets: true},
                        "data[User][lname]": {required: true, alphabets: true},
                        "data[User][username]": {required: true, NoSpace: true, remote:_ROOT+'common/username_checker'},
                        "data[User][email]": {required: true, EMAIL: true, remote:_ROOT+'common/email_checker' },
                        "data[User][password]": {required: true,minlength:5,maxlength:20},
                        "data[User][cpassword]": {required: true,minlength:5,maxlength:20,equalTo: "#password"},
                        "data[User][storename]": {required: true },
                        "data[User][storeurl]": {required: true,URL : true },
                        "data[User][address]": {required: true},
                        "data[User][phone]": {required: true,PhoneNumber: true},
                        "data[User][city]": {required: true, alphabets: true},
                        "data[User][country]": {required: true, alphabets: true},
                        "data[User][state]": {required: true, alphabets: true},
                        "data[User][productname]": {required: true, alphaNumaric: true},
                        "data[User][productdescription]": {required: true},
                        "data[User][price]": {required: true,PRICE: true},
                        "data[User][productimage]": {required: true},
                        "data[User][UserCategory]": {required: true},
                        "data[User][deals]": {required: true},
                        "product_image": {required: true},
                        "data[User][category_id]": {required: true},



			},
		messages: {
                       "data[User][username]": {required: "Please provide username",NoSpace: "Spaces are not allowed.", remote:$.format("Username already exist.")},
                       "data[User][email]": {required: "Please provide email address", EMAIL: "Invalid email address.", remote:$.format("Email already exist.")},
                       
                       "product_image": {required: "&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;This field is required."},


                     }
		});

		
		



               $("#frmClientregistration").validate({
		rules: {
                        
                        "data[Clientregistration][firstname]": {required: true,  alphabets: true},
                        "data[Clientregistration][lastname]": {required: true, alphabets: true},
                        "data[Clientregistration][email]": {required: true, EMAIL: true,},

                        "data[User][storeurl]": {required: true,URL : true },
                        "data[User][address]": {required: true},
                        "data[Clientregistration][phone]": {required: true,PhoneNumber: true},
                        "data[Clientregistration][city]": {required: true, alphabets: true},
                        "data[User][country]": {required: true, alphabets: true},
                        "data[User][state]": {required: true, alphabets: true},
                        "data[User][productname]": {required: true, alphaNumaric: true},
                        "data[User][productdescription]": {required: true},
                        "data[User][price]": {required: true,PRICE: true},
                        "data[User][productimage]": {required: true},
                        "data[User][UserCategory]": {required: true},
                        "data[User][deals]": {required: true},
                        "data[User][category_id]": {required: true},

			},
		messages: {

                     }
		});

$("#frmregistration").validate({
		rules: {

                        "data[User][name]": {required: true},
                        "data[User][int_rate]": {required: true},
                        "data[User][month_payment]": {required: true},
                        "data[User][osb]": {required: true},
                        "data[User][amortization]": {required: true},
                        "data[User][amount]": {required: true},
                        "data[User][start_date]": {required: true},
                        "data[User][maturity_date]": {required: true},
                        "data[User][lender]": {required: true},
                        "data[User][payment_type]": {required: true},
                        "data[User][email]": {required: true,EMAIL: true,remote:_ROOT+'users/checkuserexist'},
                        "data[User][password]": {required: true},
                        "data[User][re_password]": {required: true,equalTo: "#password"}

			},
		messages: {

                        "data[User][name]": {required: "Please enter name."},
                        "data[User][int_rate]": {required: "Please enter interest rate."},
                        "data[User][month_payment]": {required: "Please enter monthly payment."},
                        "data[User][osb]": {required:"Please enter osb."},
                        "data[User][amortization]": {required: "Please enter amortization."},
                        "data[User][amount]": {required: "Please enter original mortgage amount."},
                        "data[User][start_date]": {required: "Please select start date."},
                        "data[User][maturity_date]": {required: "Please select maturity date."},
                        "data[User][lender]": {required: "Please enter lender."},
                        "data[User][payment_type]": {required: "Please enter payment type."},
                        "data[User][email]": {required: "Please enter email.",EMAIL: "Please enter valid email.",remote:"Email already exist."},
                        "data[User][password]": {required: "Please enter password."},
                        "data[User][re_password]": {required: "Please enter confirm password.",equalTo: "Please enter confirm password same as above."}

                     }
		});
          $("#frmeditregistration").validate({
		rules: {

                        "data[User][name]": {required: true},
                        "data[User][int_rate]": {required: true},
                        "data[User][month_payment]": {required: true},
                        "data[User][osb]": {required: true},
                        "data[User][amortization]": {required: true},
                        "data[User][amount]": {required: true},
                        "data[User][start_date]": {required: true},
                        "data[User][maturity_date]": {required: true},
                        "data[User][lender]": {required: true},
                        "data[User][payment_type]": {required: true},
                       
                        "data[User][password]": {required: true},
                        "data[User][re_password]": {required: true,equalTo: "#password"}

			},
		messages: {

                        "data[User][name]": {required: "Please enter name."},
                        "data[User][int_rate]": {required: "Please enter interest rate."},
                        "data[User][month_payment]": {required: "Please enter monthly payment."},
                        "data[User][osb]": {required:"Please enter osb."},
                        "data[User][amortization]": {required: "Please enter amortization."},
                        "data[User][amount]": {required: "Please enter original mortgage amount."},
                        "data[User][start_date]": {required: "Please select start date."},
                        "data[User][maturity_date]": {required: "Please select maturity date."},
                        "data[User][lender]": {required: "Please enter lender."},
                        "data[User][payment_type]": {required: "Please enter payment type."},
                         "data[User][password]": {required: "Please enter password."},
                        "data[User][re_password]": {required: "Please enter confirm password.",equalTo: "Please enter confirm password same as above."}

                     }
		});


    $("#userLogin").validate({
        rules:{
                "data[userLogin][email]":{required:true,EMAIL:true},
                "data[userLogin][password]":{required:true}
        },
        messages:{
            "data[userLogin][email]":{required:"<br />Please enter email.",EMAIL:"<br />Please enter valid email."},
            "data[userLogin][password]":{required:"<br />Please enter password."}
        }
    });

                $("#adminedituser").validate({
		rules: {
                        "data[User][fname]": {required: true, NoSpace: true},
                        "data[User][lname]": {required: true, NoSpace: true},
                        "data[User][username]": {required: true, NoSpace: true},
                        "data[User][email]": {required: true, EMAIL: true},
                        "data[User][storename]": {required: true},
                        "data[User][storeurl]": {required: true,URL : true },
                        "data[User][address]": {required: true},
                        "data[User][phone]": {required: true},
                        "data[User][city]": {required: true},
                        "data[User][country]": {required: true},
                        "data[User][state]": {required: true},


			},
		messages: {

                     }
		});




              $("#forgotpassword").validate({
		rules: {

                        "data[User][email]": {required: true, EMAIL: true,remote:_ROOT+'users/checkuserexist1'}

			},
		messages: {
                        "data[User][email]": {required:"<br />Please enter email.", EMAIL: "<br />Please enter valid email.",remote:"<br />Email does not exist in our database."}
                     }
		});


       $("#UserChangePasswordForm").validate({
       rules: {
		"data[User][oldPassword]": {required: true,minlength:5,maxlength:20},
		"data[User][password]": {required: true,minlength:5,maxlength:20},
		"data[User][cpassword]": {required: true,minlength:5,maxlength:20,equalTo: "#password"},
		},
	messages: {
		
		}
	});
	

	$("#contactus").validate({
	rules: {
		"data[contactus][name]": {required: true,   alphabets: true },
		"data[contactus][email]": {required: true, EMAIL: true }
		
		},
	messages: {
		"data[contactus][name]": {required: "Please provide name"},
		"data[contactus][email]": {required: "Please provide email address"}
		
		}
	});
	
	$("#UserLoginForm").validate({
	rules: {
		"data[User][username]": {required: true},
		"data[User][password]": {required: true}
		},
	messages: {
		"data[User][username]": {required: "Please provide username"},
		"data[User][password]": {required: "Please provide password"}
		}
	});
	
	$("#adminedituserProduct").validate({
	rules: {
                "data[Product][product_name]": {required: true, alphaNumaric: true},
                "data[Product][product_description]": {required: true},
                "data[Product][price]": {required: true,PRICE_SPAN: true},
                //"data[Product][product_image]": {required: true},
                "data[Product][cat_id]": {required: true},
		},
	messages: {
               //"product_image": {required: "&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;This field is required."},
             }
	});  
		
});


function validateContentForm(frm, instanceName, errorTxt, errorId)
{
	try{
	var EditorInstance = FCKeditorAPI.GetInstance(instanceName) ; //message is name of field to be validate
	if (EditorInstance.GetXHTML(true)=='')
	{
		//document.getElementById(errorId).innerHTML		=	"";
		//document.getElementById(errorId).style.display	=	'inline';
		return false;
	}
	else
	{
		//document.getElementById(errorId).innerHTML		=	"";
		//document.getElementById(errorId).style.display	=	'none';
	}
	}catch(e){
		}
	return true;
}


