
function register_init()
{
	//alert('12312');
	jQuery.validator.addMethod("check_mail", function(value, element, param) 
	{ 
		var filter  = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
    		if (filter.test(value)) {
            	    return true;
    		} 
		return false;
	}); 
	jQuery.validator.addMethod("check_null", function(value, element, param) 
	{ 
		if (value == 0) {
            		return false;
    		} 
		return true;
	}); 
	
	$("#form_register").validate({
	/*errorPlacement: function(error, element) {
			id = element.attr("name") + "_error_box";
			$("span[@id='" + id + "']").append(error);				
		},*/
		rules: {
			email: {	
				check_null: "",											
				required: true,
				check_mail: ""
			},
			password: {	
				required: true,				
				minLength: 5,					
				maxLength: 32				
			},		
			rpassword: {
				required: true,
				equalTo: "#password"
			},
			name: {
				required: true				
			},
			sex: {
				required: true				
			},
			agree: {
				required: true				
			},
			location: {
				required:true
				//check_null: ""				
			},
			zipcode: {
				check_null: ""				
			}
			
		},
		messages: 
		{	
			email: {					
					check_null: vocabs[5],											
					required: vocabs[5],// "Please, enter your E-mail address",
					check_mail: vocabs[6]// "Please, enter correct E-mail address"
			},
			password: {					
					required: vocabs[1],// "Please, enter your password.",					
					minLength: vocabs[3],// "Please enter a password at least 5 characters long.",
					maxLength: vocabs[4]// "Please enter a password no longer then 32 characters long."				
			},
			rpassword: {
				required: vocabs[2],// "Passwords don't match. Please re-enter",// passwords.",
				equalTo: vocabs[2] // "Passwords don't match. Please re-enter"// passwords."
			}, 
			name: {
				required: vocabs[0]// "Please, enter your name."				
			}, 
			sex: {
				required: vocabs[9]// "You didn't choose your gender."				
			}, 
			location: {
				required: vocabs[10]// "Please, choose your location."				
			}, 
			zipcode: {
				check_null: vocabs[8]// "Please, enter your zipcode."
			},
			agree: {
				required: vocabs[7]// "You have to accept terms and condition."				
			} 
		}		
	});
	
	$("#login_form").validate({
		rules: {
			login: {	
				required: true,
				check_null: ""								
			},
			password: {	
				required: true,				
				check_null: ""								
			}		
		},
		messages: 
		{	
			login: {					
					required: "Please, enter your E-mail address",
					check_null: "Please, enter your E-mail address"
			},
			password: {					
					required: "Please, enter your password.",					
					check_null: "Please, enter your password"
			}
		}		
	});
			
	
}

function changeinfo_init()
{
	//alert("123")
	jQuery.validator.addMethod("check_mail", function(value, element, param) 
	{ 
		var filter  = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
    		if (filter.test(value)) {
            	    return true;
    		} 
		return false;
	}); 
	jQuery.validator.addMethod("check_null", function(value, element, param) 
	{ 
		if (value == 0) {
            		return false;
    		} 
		return true;
	}); 
	$("#form_changeinfo").validate({
	/*errorPlacement: function(error, element) {
			id = element.attr("name") + "_error_box";
			$("span[@id='" + id + "']").append(error);				
		},*/
		rules: {
			email: {	
				check_null: "",											
				required: true,
				check_mail: ""
			},
			password: {	
				required: true,				
				minLength: 5,					
				maxLength: 32				
			},		
			rpassword: {
				required: true,
				equalTo: "#password"
			},
			name: {
				required: true				
			},
			sex: {
				required: true				
			}
		},
		messages: 
		{	
			email: {		
					check_null:vocabs[5],			
					required: vocabs[5],// "Please, enter your E-mail address",
					check_mail: vocabs[6]// "Please, enter correct E-mail address"
			},
			password: {					
					required: vocabs[1],// "Please, enter your password.",					
					minLength: vocabs[3],// "Please enter a password at least 5 characters long.",
					maxLength: vocabs[4]// "Please enter a password no longer then 32 characters long."				
			},
			rpassword: {
				required: vocabs[2],// "Passwords don't match. Please re-enter",// passwords.",
				equalTo: vocabs[2] // "Passwords don't match. Please re-enter"// passwords."
			}, 
			name: {
				required: vocabs[0]// "Please, enter your name."				
			}, 
			sex: {
				required: vocabs[9]// "You didn't choose your gender."				
			} 
		}		
	});			
}

function address_init()
{

	jQuery.validator.addMethod("check_null", function(value, element, param) 
	{ 
		if (value == 0) {
            		return false;
    		} 
		return true;
	}); 
	
	$("#form_address").validate({
	/*errorPlacement: function(error, element) {
			id = element.attr("name") + "_error_box";
			$("span[@id='" + id + "']").append(error);				
		},*/
		rules: {
		/*
			email: {	
				required: true,
				check_mail: ""
			},
			password: {	
				required: true,				
				minLength: 5,					
				maxLength: 32				
			},		
			rpassword: {
				required: true,
				equalTo: "#password"
			},
			*/
			name: {
				check_null: ""								
			},
			surname: {
				check_null: ""								
			},						
			street: {
				check_null: ""				
			},
			phone: {
				check_null: ""				
			},						
			zipcode: {
				check_null: ""				
			},
			localCity: {
				check_null: ""							
			}
		},
		messages: 
		{	
		/*
			email: {					
					required: "Please, enter your E-mail address",
					check_mail: "Please, enter correct E-mail address"
			},
			password: {					
					required: "Please, enter your password.",					
					minLength: "Please enter a password at least 5 characters long.",
					maxLength: "Please enter a password no longer then 32 characters long."				
			},
			rpassword: {
				required: "Passwords don't match. Please re-enter",// passwords.",
				equalTo: "Passwords don't match. Please re-enter"// passwords."
			}, 
			*/
			name: {
				check_null: a_vocabs[0]// "Please, enter your name."				
			}, 
			surname: {
				check_null: a_vocabs[1] //  "Please, enter your last name."				
			}, 						
			localCity: {
				check_null: a_vocabs[2] //  "Please, enter your town"				
			}, 			
			street: {
				check_null: a_vocabs[3] //  "Please, enter street and apart."				
			}, 
			zipcode: {
				check_null: a_vocabs[7] //  "Please, enter your postcode."
			},
			phone: {
				check_null: a_vocabs[4] //  "Please, enter your phone."				
			} 
		}		
	});

}


function init(page,lang_id,is_logged)
{
	if (page == 'register'/* ||page == 'changeinfo'*/ )
	{
		register_init();
	}
	else if (page == 'changeinfo')
	{
		changeinfo_init();
	}
	else if (page == 'address')
	{
		address_init();		
		$("#localCity").autocomplete(
		    "/",
		    {
			extraParams : { 
				page: 'completecity',
				aaction : 'autocomplete_city',
				limit: 10
			},
			delay: 50,
			minChars: 1,
			matchSubset : 0, 
			matchContains : 0, 
			cacheLength : 0, 
			lineSeparator: '|'
		    }
		);		

		$("#localCity1").autocomplete(
		    "/",
		    {
			extraParams : { 
				page: 'completecity',
				aaction : 'autocomplete_city',
				limit: 10
			},
			delay: 50,
			minChars: 1,
			matchSubset : 0, 
			matchContains : 0, 
			cacheLength : 0, 
			lineSeparator: '|'
		    }
		);		

	}
}


function loadstates(id, site_url, select_id, lang)
{	
	//alert(div_id);
	//$("#selected_state").load(site_url+"?page=loadcities&aaction=set_country&CountryID="+id);
	$("select[@id='"+select_id+"']").load(site_url+"?page=loadcities&aaction=set_country&CountryID="+id+"&langID="+lang);	
}

function changestate(id, input_id, lang)
{
	//$("#localCity")[0].autocompleter.setExtraParams( 
	$("input[@id='"+input_id+"']")[0].autocompleter.setExtraParams( 
				{ page: 'completecity',
				aaction : 'autocomplete_city',
				StateID : id,
				langID : lang,
				limit: 10
			}
	);
}

function errorusercomment_result()
{
	$("div[@id='create_comment_block']").show();
	$("div[@id='process_waitcomment_block']").hide();	
}

function recv_addusercomment_result(xml)
{
	var i = 0;
	//alert(xml);
	$("div[@id='process_waitcomment_block']").hide();
	$("div[@id='other_link_block']").empty();
    	$("div[@id='other_link_block']").append(xml);	
}

function AddNewArticleComment(comment, id, action)
{
	var rnd = Math.random();
	//alert(comment); alert(id); alert(action);
	$.ajax(
    {
		type:"POST",
		dataType:"text",
		error: function(obj,err_msg) {
				errorusercomment_result();
		},
		success: function(result) { recv_addusercomment_result(result); },
		url: "/",
		data: {page:"add_articlecomments",		
				step: 1,
				aaction: action,			
				TextValue: comment,            
				ArticleID: id,    
				r:rnd}
    });	
	$("div[@id='create_comment_block']").hide();
	$("div[@id='process_waitcomment_block']").show();
	tb_remove();	
}

/*
function errorlogin_result()
{
	$("#login_form_block").hide();
	$("#login_error_block").show();	
}

function recv_loginOK_result(xml)
{
	var i = 0;
	alert(xml);
	$("div[@id='header_top']").empty();
    	$("div[@id='header_top']").append(xml);	
	$("#login_form_block").hide();
	$("#login_ok").show();
	
}

function AjaxLogin()
{
	var rnd = Math.random();
	mail = document.forms['login_form'].login.value;		
	psw = document.forms['login_form'].password.value;			
	aaction = document.forms['login_form'].action.value;				
	alert(mail); 	alert(psw);
	alert(aaction);	
	$.ajax(
    {
		type:"POST",
		dataType:"text",
		error: function(obj,err_msg) {
				errorlogin_result();
		},
		success: function(result) { recv_loginOK_result(result); },
		url: "/",
		data: {page:"loginblock",		
				step: 1,
				action: aaction,			
				login: mail,            
				password: psw,    
				r:rnd}
    });	
}
*/


function errorsend_result()
{

}


function recv_sendmail_result()
{
    $("div[@id='to_mail]").empty();
    $("div[@id='mail_this]").hide();
}
	

function SendMail(name, user_mail, other_mail, txt, lang, _page)
{
        var rnd = Math.random();
	//alert(user_id);alert(main_page); alert(pos);
	$.ajax(
	{
	    type:"POST",
	    dataType:"text",
	    error: function(obj,err_msg) {
		errorsend_result();
	    },
            success: function(result) { recv_sendmail_result(result); },
		url: "/",
		data: {page:_page,
		step: 1,
		aaction:"send_mail",
                user_name: name,
		from_mail:user_mail,
		to_mail:other_mail,
		text:txt,
		langID:lang,
                r:rnd}
	});
}
				   		
																						
															    
														                 
	

function errorusercomment_result()
{
	$("div[@id='create_comment_block']").show();
	$("div[@id='process_waitcomment_block']").hide();	
}


function recv_addusercomment_result(xml)
{
	var i = 0;
	//alert(xml);
	$("div[@id='create_comment_block']").show();	
	$("div[@id='process_waitcomment_block']").hide();
	$("div[@id='user_comments']").empty();
    	$("div[@id='user_comments']").append(xml);	
}

function AddNewComment(user_id, prod_id, comment, lang, captcha)
{
	var rnd = Math.random();
	//alert(captcha);
	if (captcha != 'My_KEY')
	    {
	    tb_remove;	
	    }
	$.ajax(
    {
		type:"POST",
		dataType:"text",
		error: function(obj,err_msg) {
				errorusercomment_result();
		},
		success: function(result) { recv_addusercomment_result(result); },
		url: "/",
		data: {page:"add_comments",		
				step: 1,
				aaction: "add_comment",
				Text: comment,            
				SiteUserID: user_id,    
				SiteUserProductID: prod_id,				
				langID:lang,
				r:rnd}
    });	
	$("div[@id='create_comment_block']").hide();
	$("div[@id='process_waitcomment_block']").show();
	tb_remove();	
}


function errorbigcomment_result()
{
	//alert("error");
	$("div[@id='process_waitcomment_block']").hide();	
}

function recv_addbigcomment_result(xml)
{
	var i = 0;
	//alert(xml);
	$("div[@id='process_waitcomment_block']").hide();
	$("div[@id='add_comment_block']").hide();	
	//$("textarea[@id='comments_text_value']").empty();		
	$("div[@id='user_comments_big']").empty();
    	$("div[@id='user_comments_big']").append(xml);	
}

function AddBigComment()
{
	var rnd = Math.random();
	comment = document.forms['create_comment'].TextValue.value;		
	user_id = document.forms['create_comment'].SiteUserID.value;			
	prod_id = document.forms['create_comment'].SiteUserProductID.value;				
	$.ajax(
    {
		type:"POST",
		dataType:"text",
		error: function(obj,err_msg) {
				errorbigcomment_result();
		},
		success: function(result) { recv_addbigcomment_result(result); },
		url: "/",
		data: {page:"addbigcomment",		
				step: 1,
				aaction: "add_comment",
				Text: comment,            
				SiteUserID: user_id,    
				SiteUserProductID: prod_id,				
				r:rnd}
    });	
	$("div[@id='process_waitcomment_block']").show();
}



function errorfeedback_result()
{
}

function recv_sendfeedback_result(xml)
{
	var i = 0;
	//alert(xml);
	$("div[@id='feedback_form_block']").empty();
    	$("div[@id='feedback_form_block']").append(xml);	
}

function SendFeedback()
{
	var rnd = Math.random();
	text = document.forms['feedback_form'].Text.value;	
	lang = document.forms['feedback_form'].langID.value;		
	$.ajax(
    {
	    type:"POST",
		dataType:"text",
		error: function(obj,err_msg) {
				errorfeedback_result();
		},
		success: function(result) { recv_sendfeedback_result(result); },
		url: "/",
		data: {page:"userfeedback",		
				step: 1,
				aaction: "send_feedback",
				Text: text,            
				root: "footer_xsl",
				langID:lang,
				r:rnd}
    });	
}



function errorbrowse_result()
{
}

function recv_browseitems_result(xml)
{
	var i = 0;
	//alert(xml);
	$("div[@id='user_designs']").empty();
    	$("div[@id='user_designs']").append(xml);	
	tb_init("#user_designs_add_b");
}

function BrowseItems(pos, user_id, lang)
{
	var rnd = Math.random();
	$.ajax(
    {
	    type:"POST",
		dataType:"text",
		error: function(obj,err_msg) {
				errorbrowse_result();
		},
		success: function(result) { recv_browseitems_result(result); },
		url: "/",
		data: {page:"browse_items",		
				step: 1,
				des_pos:pos,
				SiteUserID:user_id,
				root:"user_xsl",
				langID:lang,
				r:rnd}
    });	
}


function erroractivate_result()
{
}

function recv_activate_result(xml, page)
{
	var i = 0;
	if (page == "browse_items")
	{
	    $("div[@id='user_designs']").empty();
    	    $("div[@id='user_designs']").append(xml);	
	}
	else
	if (page == "browseproducts")	
	{
	    $("div[@id='user_products']").empty();
    	    $("div[@id='user_products']").append(xml);	
	}	
}

function ActivateItem(user_id, page_name, current, itemID, pos)
{
	var rnd = Math.random();
	$.ajax(
    {
	    type:"POST",
		dataType:"text",
		error: function(obj,err_msg) {
				erroractivate_result();
		},
		success: function(result) { recv_activate_result(result, page_name); },
		url: "/",
		data: {page: page_name,		
				CurrentState: current,
				ID: itemID, 
				step: 1,
				des_pos:pos,
				prod_pos:pos,
				SiteUserID:user_id,
				MainPage:'user',
				r:rnd}
    });	
}

function DeleteItem(user_id, page_name, itemID, pos)
{
	var rnd = Math.random();
	$.ajax(
    {
	    type:"POST",
		dataType:"text",
		error: function(obj,err_msg) {
				erroracivate_result();
		},
		success: function(result) { recv_activate_result(result, page_name); },
		url: "/",
		data: {page: page_name,	
				aaction:"delete_item",	
				DeleteDesignID: itemID, 
				DeleteSiteUserProductID: itemID, 				
				step: 1,
				des_pos:pos,
				prod_pos:pos,
				SiteUserID:user_id,
				r:rnd}
    });	
}



function errorbrowse_result()
{
}

function recv_browseproducts_result(xml)
{
	var i = 0;
	// alert(xml);
	$("div[@id='user_products']").empty();
    	$("div[@id='user_products']").append(xml);	
	$("div[@id='user_products_other']").empty();
    	$("div[@id='user_products_other']").append(xml);	
	$("div[@id='user_products_other_big']").empty();
    	$("div[@id='user_products_other_big']").append(xml);	

}

function BrowseProducts(main_page, pos, user_id, lang)
{
	var rnd = Math.random();
	//alert(user_id);alert(main_page); alert(pos);
    $.ajax(
    {
	    type:"POST",
		dataType:"text",
		error: function(obj,err_msg) {
				errorbrowse_result();
		},
		success: function(result) { recv_browseproducts_result(result); },
		url: "/",
		data: {page:"browseproducts",		
				step: 1,
				prod_pos:pos,
				SiteUserID:user_id,
				MainPage:main_page,				
				root:"products_xsl",
				langID:lang,				
				r:rnd}
    });	
}


function errorcart_result()
{
}

function recv_removefromcart_result(xml)
{
	var i = 0;
	$("div[@id='cart_item_raws']").empty();
	$("div[@id='cart_item_raws']").append(xml);	
//	$("div[@id='content_field']").empty();
//    	$("div[@id='content_field']").append(xml);			
}

function RemoveFromCart()
{
	var rnd = Math.random();
	id = document.forms['remove_item_cart'].OrderedItemID.value;	
	$.ajax(
    {
	    type:"POST",
		dataType:"text",
		error: function(obj,err_msg) {
				errorcart_result();
		},
		success: function(result) { recv_removefromcart_result(result); },
		url: "/",
		data: {page:"change_cart",
				step: 1,
				aaction: "remove_from_cart",
				OrderedItemID:id,				
				r:rnd}
    });	
}

function ChangeCartSize(id, size_id)
{
	var rnd = Math.random();
	$.ajax(
    {
	    type:"POST",
		dataType:"text",
		error: function(obj,err_msg) {
				errorcart_result();
		},
		success: function(result) { recv_removefromcart_result(result); },
		url: "/",
		data: {page:"change_cart",		
				step: 1,
				aaction: "change_cart_item",
				OrderedItemID:id,
				SizeID: size_id,				
				r:rnd}
    });
}


function ChangeCartQuantity(id, quantity)
{
	var rnd = Math.random();
	$.ajax(
    {
	    type:"POST",
		dataType:"text",
		error: function(obj,err_msg) {
				errorcart_result();
		},
		success: function(result) { recv_removefromcart_result(result); },
		url: "/",
		data: {page:"change_cart",		
				step: 1,
				aaction: "change_cart_item",
				OrderedItemID:id,				
				Quantity: quantity,								
				r:rnd}
    });
}



function errorprod_result()
{
}

function recv_prodcategory_result(xml)
{
	var i = 0;
	//alert(xml);
	$("div[@id='products_buttons_big']").empty();
    	$("div[@id='products_buttons_big']").append(xml);	
}



function ProdCategoryMove(i_page, pos, i_ipp, lang)
{
	var rnd = Math.random();	
	$.ajax(
    {
	    type:"POST",
		dataType:"text",
		error: function(obj,err_msg) {
				errorprod_result();
		},
		success: function(result) { recv_prodcategory_result(result); },
		url: "/",
		data: {page:i_page,
				step: 1,
				cat_pos: pos,
				ipp: i_ipp,
				langID:lang,
				r:rnd}
    });	

}


function errorcartadd_result()
{
}

function recv_addtocart_result(xml)
{
	var i = 0;
	$("div[@id='cart_block']").empty();
    	$("div[@id='cart_block']").append(xml);	
    	$("div[@id='prod_adding_msg']").hide();				
    	$("div[@id='product_added_msg']").show();		
}

function AddToCart()
{
	var rnd = Math.random();
    	$("div[@id='product_added_msg']").hide();			
    	$("div[@id='prod_adding_msg']").show();					
	id = document.forms['add_to_cart'].SiteUserProductID.value;	
	size_id = document.forms['add_to_cart'].Size.value;	
	quantity = document.forms['add_to_cart'].Quantity.value;	
	lang = document.forms['add_to_cart'].langID.value;	
	$.ajax(
    {
	    type:"POST",
		dataType:"text",
		error: function(obj,err_msg) {
				errorcartadd_result();
		},
		success: function(result) { recv_addtocart_result(result); },
		url: "/",
		data: {page:"addtocart",		
				step: 1,
				aaction: "add_product_to_cart",
				SiteUserProductID: id,
				SizeID: size_id,				
				Quantity: quantity,
				root:"cart_xsl",
				langID:lang,								
				r:rnd}
    });	
}




function erroruser_result()
{
	$("div[@id='change_userphoto_block']").show();
	$("div[@id='process_wait_block']").hide();	
}

function recv_changeuserphoto_result(xml)
{
	var i = 0;
	$("div[@id='process_wait_block']").hide();
	$("div[@id='change_userphoto_block']").hide();		
	$("a[@id='upload_user_button']").show();			
	$("div[@id='user_picture']").empty();
    	$("div[@id='user_picture']").append(xml);	
}

function ChangeUserPhoto()
{
	//starting setting some animation when the ajax starts and completes
	$("#loading")
	.ajaxStart(function(){
		$(this).show();
	})
	.ajaxComplete(function(){
		$(this).hide();
	});
		
		$.ajaxFileUpload
		(
			{
				url: "/",				
				secureuri:false,
				step: 1,
				aaction: "add_photo",	
				page: "change_userphoto",
				fileElementId:'fileToUpload',				
				dataType: 'text',
				success: function (data, status)
				{	
					recv_changeuserphoto_result(data);
				},
				error: function (data, status, e)
				{
					erroruser_result();
				}
			}
		)
	return false;
}
	

