﻿var utils = {
	goUrl : function(url)
	{
		if (url == 'back') {
			history.go(-1);
		} else {
			document.location = url;
		}
	}
};

jQuery.preloadImages = function()
{
    for(var i = 0; i<arguments.length; i++)
    {
        jQuery("<img>").attr("src", arguments[i]);
    }
};

/* --------------------------------------------------
   Script checks for required class form elements and
   blocks form submission if blank
   Copyright (C) Colin Mc Mahon, Protomatter Web
   Solutions 2007
   -------------------------------------------------- */
var Checkform = {
	init : function(in_text) {
		$('form').each(function(){
			if(!$(this).hasClass("no-validation"))
			{
			    $(this).submit(function(evt){
				    var ok = true;
				    $(this).find('.required').each(function(){
					    var val = this.value;
					    var pdiv = $(this).parents('div').get(0);
					    if(pdiv.className == "markItUpContainer")
					    {
					        pdiv = $(this).parents('div').get(3);
					    }
					    if(val == '' || val == in_text || val == '-1') {
					    	ok = false;
					    	$(pdiv).addClass('field-error');
					    } else {
					    	$(pdiv).removeClass('field-error');
					    }
				    });
    
				    if(ok==false)
				    {
					    evt.preventDefault();
					    FormError.init();
				    }
				    else
				    {
				        $(this).find('input[type="submit"]').each(function(){
						    $(this).addClass("disabled").click(function(){
						    	evt.preventDefault();
						    });
					    });
				    };
			    });
            }
		});
	}
};

var FormError = {
    init : function()
    {
        alert('Please complete all required fields!');
    }
};

var Validate = {
	init : function(fields)
	{
		var valid = true;
		for (var i = 0; i < fields.length; i++) {
			var val = $("#" + fields[i]).val();
			var pdiv = $("#" + fields[i]).parents("div").get(0);
			if (val == "" || val == "-1")
			{
				valid = false;
				$(pdiv).addClass('field-error');
			}
			else
			{
				$(pdiv).removeClass('field-error');
			}
		}
		if (!valid)
		{
			FormError.init();
		}
		return valid;
	}
};

/* --------------------------------------------------
   Script highlights form rows and fieldsets on
   focus of a form element
   Copyright (C) Colin Mc Mahon, Protomatter Web
   Solutions 2007
   -------------------------------------------------- */
var FocusFields = {
	init : function() {
		$("form").each(function(){
		    $(this).find(".textfield, textarea, select, input[@type='checkbox'], input[@type='radio']").each(function(){
		        $(this).focus(function(){
		            var pdiv = $(this).parents("div").get(0);
		            if(pdiv.className == "markItUpContainer")
					{
					    pdiv = $(this).parents('div').get(3);
					}
		            if(!$(pdiv).hasClass('focus')) $(pdiv).addClass('focus');
		        });
		        
		        $(this).blur(function(){
		            var pdiv = $(this).parents("div").get(0);
		            if(pdiv.className == "markItUpContainer")
					{
					    var pdiv = $(this).parents('div').get(3);
					}
		             if($(pdiv).hasClass('focus')) $(pdiv).removeClass('focus');
		        });
		    });
		});
	}
};


/* --------------------------------------------------
   Script highlights form errors post form submission
   given a list of field ids
   Copyright (C) Colin Mc Mahon, Protomatter Web
   Solutions 2007
   -------------------------------------------------- */
var HighlightFields = {
	init : function (in_fields, in_cmts) {
		$(function(){
			var fldAr = in_fields;
			var cmtAr = in_cmts;
			var parentDiv;
			for (var i=0; i<fldAr.length; i++) {
				var tmpElem = fldAr[i];
				if (tmpElem.indexOf('file_')!=-1 || tmpElem.indexOf('img_')!=-1) {
					tmpElem = tmpElem.split("__");
					tmpElem = tmpElem[1];
				}
				parentDiv = $("#" + tmpElem).parents('div').get(0);
				$(parentDiv).addClass('field-error');
				if(cmtAr[i] != "")
					$(parentDiv).append('<p class="field-error-detail">' + cmtAr[i] + '</p>');
			}
		});
	}
};


$(function(){
	Checkform.init();
	FocusFields.init();
	//HighlightRow.init();
});
