	$(document).ready(function() {

	  var emailFormat = /[-_\.a-zA-Z0-9]+@[-_\.a-zA-Z0-9]+(\.\w)+/i;

		$(".text-date").each( function() { 
			$(this).wrap('<div class="date-wrapper"></div>').after(getDateWidget( $(this).val()));
			$(this).hide();
		});
	
		//start change
		$("#cusform .required").change(function() {
			$(this).parent().removeClass("warning").find("div.error-message").remove();
		});

	  $("#cusform-table .required").change(function() {
			$(this).parents("td:first").removeClass("warning").find("div.error-message").remove();
			$(this).parents("p").removeClass("warning").find("div.error-message").remove();

	  });
		//end change
	


		//start tform
		$(".tform").submit(function() {
	
			var numWarnings=0;
	    $('.tform .required').each(function(index) {
			  	  	
				if (!$(this).val()) {
			
					$(this).parent().removeClass("warning").find("div.error-message").remove();
					var $inputItem = $(this).parent();
					var errorMessage = getLocaleText("requiredField");
					$("<div></div>").addClass("error-message").text(errorMessage).appendTo($inputItem);
					$inputItem.addClass("warning");
					numWarnings++;
	
				}
		
			});
	
	
			if(numWarnings>0)
				return false;
			else
				return true;
	
										
		});
		//end tform




		//start submit
		$("#cusform").submit(function() {
	
			var numWarnings=0;
	    $('#cusform .required').each(function(index) {
			  	  	
				if (!$(this).val()) {
			
					$(this).parent().removeClass("warning").find("div.error-message").remove();
					var $inputItem = $(this).parent();
					var errorMessage = getLocaleText("requiredField");
					$("<div></div>").addClass("error-message").text(errorMessage).appendTo($inputItem);
					$inputItem.addClass("warning");
					numWarnings++;
	
				}
		
			});
	
	
	    $('#cusform .email').each(function(index) {
				
				var $email = $(this);
				if (!emailFormat.test($email.val())) {
					$(this).parent().removeClass("warning").find("div.error-message").remove();
					var $inputItem = $(this).parent();
					var errorMessage = getLocaleText("IncorrectEmailFormat");
					$("<div></div>").addClass("error-message").text(errorMessage).appendTo($inputItem);
					$inputItem.addClass("warning");
					numWarnings++;
				} else {
					$(this).parent().removeClass("warning").find("div.error-message").remove();
				}
	
			});
	
			if(numWarnings>0)
				return false;
			else
				return true;
	
										
		});
		//end submit
	

		//start submit table
		$("#cusform-table").submit(function() {
	
			var numWarnings=0;
	    $('#cusform-table .required').each(function(index) {
			  	  	
				

			var widget_type="textbox";
			switch( this.nodeName.toLowerCase() ) {
			case 'select':
					widget_type ="select";
	
			case 'input':
				if ( this.type=="radio" ){
					widget_type ="radio";
				}
			}


				if (widget_type=="textbox" && !$(this).val()) {
			
					$(this).parent().removeClass("warning").find("div.error-message").remove();
					var $inputItem = $(this).parent();
					var errorMessage = getLocaleText("requiredField");
					$("<div></div>").addClass("error-message").text(errorMessage).appendTo($inputItem);
					$inputItem.addClass("warning");
					numWarnings++;
	
				}

				if (widget_type=="select" ) {
				
					var options = $("option:selected", this);
					bval = options.length > 0 && ( this.type == "select-multiple" || ($.browser.msie && !(options[0].attributes['value'].specified) ? options[0].text : options[0].value).length > 0);
					if(!bval){
						$(this).parent().removeClass("warning").find("div.error-message").remove();
						var $inputItem = $(this).parent();
						var errorMessage = getLocaleText("requiredField");
						$("<div></div>").addClass("error-message").text(errorMessage).appendTo($inputItem);
						$inputItem.addClass("warning");
						numWarnings++;
					}
			
	
				}


				if (widget_type=="radio" && $("input[name^='"+this.name+"']").filter(':checked').length==0) {
			
					$(this).parent().removeClass("warning").find("div.error-message").remove();
					var $inputItem = $(this).parent();
					var errorMessage = getLocaleText("requiredField");
					$("<div></div>").addClass("error-message").text(errorMessage).appendTo($inputItem);
					$inputItem.addClass("warning");
					numWarnings++;
	
				}

		
				
		
			});
	
	
	    $('#cusform .email').each(function(index) {
				
				var $email = $(this);
				if (!emailFormat.test($email.val())) {
					$(this).parent().removeClass("warning").find("div.error-message").remove();
					var $inputItem = $(this).parent();
					var errorMessage = getLocaleText("IncorrectEmailFormat");
					$("<div></div>").addClass("error-message").text(errorMessage).appendTo($inputItem);
					$inputItem.addClass("warning");
					numWarnings++;
				} else {
					$(this).parent().removeClass("warning").find("div.error-message").remove();
				}
	
			});
	
			if(numWarnings>0)
				return false;
			else
				return true;
	
										
		});
		//end submit table



	});


	//start date widget
	function setDateValue( oWidget ){
		var date = $(oWidget).parent().find(".date-year").val() + $(oWidget).parent().find(".date-month").val() + $(oWidget).parent().find(".date-day").val();
		$(oWidget).parent().find(".text-date").val(date);
	}

	function setMonthDays( oWidget ){
		$(oWidget).parent().find(".date-day").html( getMonthDays( $(oWidget).parent().find(".date-month").val() , $(oWidget).parent().find(".date-year").val() ));
		setDateValue(oWidget);

	}

	function getMonthDays(month,year,day){
	    var daysInMonth=[31,0,31,30,31,30,31,31,30,31,30,31];
	    td=new Date();
	    var mDate = new Date(year, month-1, 1);
	    daysInMonth[1]=(((mDate.getFullYear()%100!=0)&&(mDate.getFullYear()%4==0)) || (mDate.getFullYear()%400==0))?29:28;
		var options = '';
		var selected = '';
		for(i=1;i<=daysInMonth[month-1];i++){
			if(i==day){
				selected=" selected ";
			}else{
				selected="";
			}
			options += '<option value="' + i + '"' + selected + '>'+i+'</option>>';
		}
		return options;		
	}

	function getDateWidget(sDate){

		var year = parseInt(sDate.substr(0, 4));
		var month = parseInt(sDate.substr(4, 2)*1);
		var day = parseInt(sDate.substr(6, 2)*1);
		var html = "";


		var year_options = "";
		var year_to = year+5;
		var year_from = year-80;

		for(i=year_from;i<=year_to;i++){

			if(i==year){
				selected=" selected ";
			}else{
				selected="";
			}
			year_options += '<option value="' + i + '"' + selected + '>'+i+'</option>>';

		}	

		var MonthNamesArray = String(getLocaleInfo2("monthNames")).split(";");
		
		var month_options = "";
		for(i=1;i<=12;i++){

			if(i==month){
				selected=" selected ";
			}else{
				selected="";
			}
			month_options += '<option value="' + i + '"' + selected + '>'+  String(MonthNamesArray[i-1])  +'</option>>';

		}	

		return 	'<select name="month" class="date-month" onChange="setMonthDays(this);">' + month_options + '</select>' +" / "+  '<select name="day" class="date-day" onChange="setDateValue(this);">' + getMonthDays(month,year,day) + '</select>' +" / " + '<select name="year" class="date-year" onChange="setMonthDays(this);">' + year_options + '</select>';

	}
	//end date widget
	


