function validate_form(form){
	var f = $(form)
	if (!f)
		return false;
}
function submit_form(arg){
	var f = $(arg["form"]);
	f = f.parents("form");
	if(!f)
		return false;

	f.find("div.error").text("");
	var query = {};
	f.find(":text").each(function(){
		if (this.value){
			query[this.name] = this.value;
		}
	});
	f.find("textarea").each(function(){
		if (this.value){
			query[this.name] = this.value;
		}
	});
	f.find("input:checked").each(function(){
		query[this.name] = "True";
	});
	query['url'] = arg['detail_page'];
	query['id'] = arg['id'];
	show_loading("loading_email");
	$.post(arg['url'],query,callback);
	return false;
}

function callback(data){
    	$("#loading_email").hide();
	data = eval(data);
	data = data[0];
	if (data['status'] != 'ok'){
		for (var i in data){
			id = i;
			error = data[i];
			$('#'+id).text(error);
		}
	}
	else{
		var f = $("#email_form");
		clear(f);
		$('#email_form_form').hide();
		$('#email_form_success').show();
	}
}

function clear(f){
	f.find(":text").val("");
	f.find("textarea").val("");
	f.find(":checkbox").attr("checked", false);
	f.find("div.error").text("");
}

function close_email_form(f){
	$('#email_form_form').hide();
	$('#email_form_success').hide();
	clear($(f));
	$('#email_form').hide();
	$('#overlay').hide();
}

function initialize_email_form(arg){
	var div = "email_form";
	$("#email_friend").click(function(){
		$('#email_form_form').show();
		$('#email_form_success').hide();
		ShowPopUp(div);
		$('#email_form_form').find('input[@name="first_email"]').focus();
	});

	$("#cancel_button").click(function(){
		f = $("#" + div);
		close_email_form(f);
	});
	$("input#submit_button").click(function(){return submit_form(
		{"form":this, 
		"detail_page": location.href,
		"id": arg["id"],
		"url": arg["url"]
        })});
}

/*
need two arguments, id of refer friend link and url of refer friend function
*/
function initialize_refer_friend(url){
	$("#cancel").click(function(){
		f = $("#refer_form");
		close_refer_form(f);
	});
	$("input#submit").click(function(){return refer_submit_form(
		{"form":this, 
			"url":url
	})});
}

function ajax_refer_form(){
	var form = document.getElementById('refer_friend_form');
	if(form){//If this form has NOT YET been retreived for the first time.
		display_refer_form();
		return true;
	}else{
		$.ajax({
			url: '/main/get-refer-form/',
			type: 'GET',
			success: function(data){
				$('#loading_content').html(data);
				initialize_refer_friend('/partial/refer_friend/');
				display_refer_form();
				return false;
			}
		});
	}
}

function ajax_design_form(){
	var form = document.getElementById('custom_design_form');
	if(form){//If this form has NOT YET been retreived for the first time.
		display_design_form();
		return true;
	}else{
		$.ajax({
			url: '/main/custom-design/',
			type: 'GET',
			success: function(data){
				$('#loading_content').html(data);
				display_design_form();
				return false;
			}
		});
	}
}

function ajax_gallery(){
	var form = document.getElementById('gallerypane');
	if(form){//If this form has NOT YET been retreived for the first time.
		display_gallery();
		return true;
	}else{
		$.ajax({
			url: '/main/custom-design-sample/',
			type: 'GET',
			success: function(data){
				$('#loading_content').html(data);
				display_gallery();
				return false;
			}
		});
	}
}

function display_refer_form(){
	$('#refer_friend_form').show();
	$('#refer_success').hide();
	ShowPopUp('refer_form');
	$('#refer_friend_form').find('input[@name="first_email"]').focus();
}

function display_design_form(){
	$('#custom_design_form').show();
	$('#design_success').hide();
	ShowPopUp('refer_form');
	$('#custom_design_form').find('input[@name="customer_name"]').focus();
}

function display_gallery(){
	ShowPopUp('refer_form');
}

function init_refer_friend_link(element){
	$(element).click(function(){
		// Get the refer_friend section via Ajax call here first
		var stat = ajax_refer_form();
	});
}

function init_custom_design_link(element){
	$(element).click(function(){
		// Get the custom_design section via Ajax call here first
		var stat = ajax_design_form();
		return false;
	});
}

function init_gallery_link(element){
	$(element).click(function(){
		// Get the gallery section via Ajax call here first
		var stat = ajax_gallery();
		return false;
	});
}

function close_refer_form(f){
	$('#refer_friend_form').hide();
	$('#refer_success').hide();
	clear($(f));
	$('#refer_form').hide();
	$('#overlay').hide();
  // Hide iframe to display the user experience flash
}

function close_gallery(){
	$('#refer_form').hide();
	$('#overlay').hide();
}

function refer_submit_form(arg){
	var f = $(arg["form"]);
	f = f.parents("form");
	if(!f)
		return false;

	f.find("div.error").text("");
	var query = {};
	f.find(":text").each(function(){
		if (this.value){
			query[this.name] = this.value;
		}
	});
	f.find("textarea").each(function(){
		if (this.value){
			query[this.name] = this.value;
		}
	});
	f.find("input:checked").each(function(){
		query[this.name] = "True";
	});
	
	show_loading("loading_refer");
	$.post(arg['url'],query, refer_callback);
	return false;
}

function refer_callback(data){
    	$("#loading_refer").hide();
	data = eval(data);
	data = data[0];
	if (data['status'] != 'ok'){
		for (var i in data){
			id = i;
			error = data[i];
			$('#refer_'+id).text(error);
		}
	}
	else{
		var f = $("#refer_form");
		clear(f);
		$('#refer_friend_form').hide();
		$('#refer_success').show();
	}
}

function validate(id){
 	var value = $("#" + id).val();
	return echeck(value);
}
function echeck(strValue){
	if (strValue.match(/^\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$/)){
		return true;
	}
	else{
		if ( strValue != "")
			alert("Invalid E-Mail Address");    
		else
			alert("Please enter your Email Address");
		return false;
	}
}

function show_loading(id) {
	var loading = $("#" + id);
    var pHeight = $("#loading_content").height();
    var refer_form = $("#refer_form");
	loading.width("100%");
	loading.height(pHeight);
	loading.show();
}
