/**
 * @author WilliamHam
 */


var re_basic_input = /^\s*[a-zA-Z,\s]+\s*$/;
var re_basic_cuurency = /(^\d*\.\d{2}$)/;
var re_descimal_cuurency = /^\d+(?:\.\d{0,2})?$/;
var re_year = /(\d{4})/;

// Ready flag

var bln_Title = false
var bln_Price = true
var bln_Year = false
var bln_Type = false
var bln_Supplier = false
var bln_Publisher = false

$(document).ready(function() {

	
	$("#resource_title").change(function() {
		maxChars("resource_title");
		TestTitle();
	})
	
	$("#resource_description").change(function() {
		maxChars("resource_description");
	})
	
	$("#new_resource_publisher").change(function() {
		maxChars("new_resource_publisher");
	})
	
	$("#new_resource_supplier").change(function() {
		maxChars("new_resource_supplier");
	})
	
	$("#new_Resource_Type").change(function() {
		maxChars("new_Resource_Type");
	})
	
	$("#resource_price_notes").change(function() {
		maxChars("resource_price_notes");
	})
	
	$("#resource_author").change(function() {
		maxChars("resource_author");
	})
	
	$("#resource_price").change(function() {
		TestPrice();					
	})
	
	$("#resource_date").change(function() {
		TestYear();
	})

	$("#resourcetype").change(function() {
		TestType();
	})
	
	$("#new_Resource_Type").change(function() {
		TestNewType();
	})

	$("#resource_supplier").change(function() {
		Testsupplier();
	})
	
	$("#new_resource_supplier").change(function() {
		TestNewsupplier();
	})

	$("#resource_publisher").change(function() {
		Testpublisher();
	})
	
	$("#new_resource_publisher").change(function() {
		TestNewpublisher();
	})

});

function submitForm(){

	var outputMessage = "";
	var ret = true;

	if ($("#resource_title").val()==""){
		ret=false; outputMessage = outputMessage + "No title<br />";
	}

	if ((1000 - $("#resource_description").val().length) < 0 ){
		ret=false;
		outputMessage = outputMessage + "Resource description is over 1000 characters.<br />"
	}

	TestYear();

	if (!bln_Year){
		ret=false;
		outputMessage = outputMessage + "The year is not valid<br />";
	}

	if ($("#resource_price").val()==""){
		ret=false;
		outputMessage = outputMessage + "No price is not valid<br />"
	}

	TestType();

	if (!bln_Type){
		ret=false;
		outputMessage = outputMessage + "No Type selected, or no new Type entered<br />"
	}	
	
	Testsupplier();
	
	if (!bln_Supplier){
		ret=false;
		outputMessage = outputMessage + "No Supplier selected, or no new Supplier entered<br />";
	}

	Testpublisher();

	if (!bln_Publisher){
		ret=false;
		outputMessage = outputMessage + "No Publisher selected, or no new Publisher entered<br />";
	}	

	if(!ret){
		$("#ErrorMessageOutput").html("<hr style=\"clear:both\" /><h3>There are errors on this form: -</h3>" + outputMessage + "<hr style=\"clear:both\" />");
		return false;
	}else{
		return true;
	}

}

// TYPE

function TestType(){
	var currently = $("#resourcetype").attr("value");
	if(!currently==""){
		$("#new_Resource_Type").val("")
		bln_Type = true;
	} else {

		if ($("#new_Resource_Type").val()==""){
			bln_Type = false;
		}else{
			bln_Type = true;		
		}

	}
}

function TestNewType(){
	bln_Type = true;
	$("#resourcetype").val("");
}

// SUPPLYER

function Testsupplier(){
	var currently = $("#resource_supplier").attr("value");
	if(!currently==""){
		$("#new_resource_supplier").val("")
		bln_Supplier = true;
	}else{
		if ($("#new_resource_supplier").val()==""){
			bln_Supplier = false;
		}else{
			bln_Supplier = true;		
		}
	}
}

function TestNewsupplier(){
	bln_Supplier = true;
	$("#resource_supplier").val("");
}

// PUBLISHER

function Testpublisher(){
	var currently = $("#resource_publisher").attr("value");
	if(!currently==""){
		$("#new_resource_publisher").val("")
		bln_Publisher = true;
	}else{
		if ($("#new_resource_publisher").val()==""){
			bln_Publisher = false;
		}else{
			bln_Publisher = true;		
		}
	}
}

function TestNewpublisher(){
	bln_Publisher = true;
	$("#resource_publisher").val("");
}

function TestTitle(){
	
	// Must not be blank
		
	var currently = $("#resource_title").attr("value");
	if(currently.length <= 0){
		bln_Title = false;
		$("#resource_title_req").html("<strong>Must have a value</strong>");
	}else{
		bln_Title = true;
		$("#resource_title_req").html("")
	};
	
}

function TestPrice(){
	
	// must be 12 or 12.50
	var currently = $("#resource_price").attr("value");
	if (currently==""){
		bln_Price = true;	
	} else {
		if(!re_descimal_cuurency.test(currently)){
			$("#lbl_resource_price").html("Resource Price : <strong>Invalid value</strong>");
			bln_Price = false;	
		}else{
			$("#lbl_resource_price").html("Resource Price");
			bln_Price = true;	
		};
	}
}

function TestYear(){

	// must be 1220
	var currently = $("#resource_date").attr("value");
	if (currently==""){
		bln_Year = true;	
		$("#lbl_resource_year").html("Publication Year");
	} else {
		if(!re_year.test(currently)){
			$("#lbl_resource_year").html("Publication Year : <strong>Invalid value</strong>");
			bln_Year = false;
		}else{
			$("#lbl_resource_year").html("Publication Year");
			bln_Year = true;	
		};
	}
}

function maxChars(oID) {
		
	var max_chars = 1000;
	var num_chars = max_chars - $("#"+oID).val().length;

	$("#"+oID+"_status").html(Math.abs(num_chars) + " character" + ((Math.abs(num_chars) == 1) ? "" : "s") + " " + ((num_chars < 0) ? "over" : "left"));
	if (num_chars < 0){
		$("#"+oID+"_status").css("color","red");
		$("#"+oID).css("color","red");
	}else{
		$("#"+oID+"_status").css("color","#C08301");
		$("#"+oID).css("color","#000000");
	}

}
