// JavaScript Document
function AlertMessage(){
	for(var ms=0;ms<MessageList.length;ms++){
		MessageString+=MessageList[ms]+'\n';
		}
		alert(MessageString);
		return false;
	
	}
var ValidArray = Array();
var MessageList = Array();
var MessageString='';
var ObjEmail = /^([\w]+)(.[\w]+)*@([\w-]+\.){1,5}([A-Za-z]){2,4}$/;
var objphone = /^[0-9\(\) +-]*$/;
var ObjSpecialChars = /^([a-zA-Z0-9]+)$/;
var Validate;

Validate = Class.create();

Validate = {
			initialize:function(){

				},
			ValidatesForEmail:function(field,message){
				ValidArray.push(Array(field ,'email',message));
				},
			ValidatesPresenceOf: function(field,message){
				ValidArray.push(Array(field,'notblank',message));
				},
			ValidatesForSpecialChars: function(field,message)
			{
				ValidArray.push(Array(field,'special_chars',message));
			},
			ValidatesComparison: function(field1, message, field2)
			{
				ValidArray.push(Array(field1, 'comp_text', field2, message));
			},
			ValidatesForPhone: function(field, message)
			{
				ValidArray.push(Array(field, 'phone', message));
			},
			ValidatesForNumber: function(field, message)
			{
				ValidArray.push(Array(field, 'number', message));
			},
			ValidatesForLat: function(field, message)
			{				
				ValidArray.push(Array(field, 'lat', message));
			},
			ValidatesForLong: function(field, message)
			{				
				ValidArray.push(Array(field, 'long', message));
			},
			ValidatesMinLengthOf: function(field, message, minlen)
			{
				ValidArray.push(Array(field, 'minlength', message, minlen));
			},
				
			valid:function(){
				MessageList=Array();
				MessageString='';
					for(var vld=0;vld<ValidArray.length;vld++)
					{
						if(ValidArray[vld][1] == 'notblank'){
							
							if(this.validateText($(ValidArray[vld][0]).value)){
								MessageList.push(ValidArray[vld][2]);
							}
						}
						if(ValidArray[vld][1] == 'number')
						{
							if(!this.validateText($(ValidArray[vld][0]).value))
							{
								if(!this.is_number($(ValidArray[vld][0]).value))
								{
									MessageList.push(ValidArray[vld][2]);
								}
							}	
						}
						if(ValidArray[vld][1] == 'lat')
						{				
								if(this.is_number($(ValidArray[vld][0]).value) )
								{
									
									if(!$(ValidArray[vld][0]).value.match('/[0-9.]*/'))
									{				
										
										if ($(ValidArray[vld][0]).value < -90 || $(ValidArray[vld][0]).value > 90)										
											MessageList.push(ValidArray[vld][2]);
									}
									else
									{
										if ($(ValidArray[vld][0]).value < -90 || $(ValidArray[vld][0]).value > 90)										
											MessageList.push(ValidArray[vld][2]);
									}
									
								}	
								else
								{
									MessageList.push(ValidArray[vld][2]);
								}
															
								
						}
						if(ValidArray[vld][1] == 'long')
						{							
								if(this.is_number($(ValidArray[vld][0]).value) )
								{
									if(!$(ValidArray[vld][0]).value.match('/[0-9.]*/'))
									{																					
										if ($(ValidArray[vld][0]).value < -180 || $(ValidArray[vld][0]).value > 180)										
											MessageList.push(ValidArray[vld][2]);
									}
									else
									{
										if ($(ValidArray[vld][0]).value < -180 || $(ValidArray[vld][0]).value > 180)										
											MessageList.push(ValidArray[vld][2]);
									}
									
								}
								else
								{
									MessageList.push(ValidArray[vld][2]);
								}								
								
						}
						if(ValidArray[vld][1] == 'comp_text')
						{
							
							if(!this.compareStrings($(ValidArray[vld][0]).value, $(ValidArray[vld][2]).value))
							{
								MessageList.push(ValidArray[vld][3]);
							}
						}
						if(ValidArray[vld][1] == 'minlength')
						{
							if (!this.validateText($(ValidArray[vld][0]).value)) {
								if (!this.validateMinLen($(ValidArray[vld][0]).value, ValidArray[vld][3])) {
									MessageList.push(ValidArray[vld][2]);
								}
							}
						}
						if(ValidArray[vld][1] == 'phone')
						{
							if(!this.validateText($(ValidArray[vld][0]).value))
							{
								if(!this.validatePhone($(ValidArray[vld][0]).value))
								{
									MessageList.push(ValidArray[vld][2]);
								}
							}	
						}
						if(ValidArray[vld][1] == 'email'){
							if(!this.validateText($(ValidArray[vld][0]).value)){
								if(!this.validateEmail($(ValidArray[vld][0]).value)){
									MessageList.push(ValidArray[vld][2]);
								}
							}	
						}
						if(ValidArray[vld][1] == 'special_chars'){
							if(!this.validateText($(ValidArray[vld][0]).value)){
								if(!this.validateSpecialChars($(ValidArray[vld][0]).value)){
									MessageList.push(ValidArray[vld][2]);
								}
							}	
						}
						
					}
				},
			GetMessageCount:function(){
				return MessageList.length;
				},
			GetMessageForAppend:function(){
				return MessageList;
				},
			AppendMessage:function(msg){
				MessageList.push(msg);
			},
			validateText:function(txt){
				
					if(trim(txt) == ''){
							return true;
						}else{
							return false;	
						}
				},
			validateMinLen:function(txt, minlen)
			{
				if (txt.length < minlen)
					return false;
				else
					return true;
			},
			compareStrings:function(txt1, txt2)
			{
				if (txt1 != txt2)
					return false;
				else
					return true;
			},
			is_number:function(txt)
			{
				if (isNaN(txt))
					return false;
				else
					return true;
			},
			validatePhone:function(vphone)
			{
				if(objphone.test(vphone))
				{
					return true;
				}
				else
				{
					return false;	
				}
			},
			validateEmail:function(vemail){
					if(ObjEmail.test(vemail)){
						return true;
					}else{
						return false;	
					}
				},
			validateSpecialChars:function(txt){
					if (ObjSpecialChars.test(txt)){
						return true;
					}
					else{
						return false;
					}
				  
				}
				
			}
			
			function trim(str, chars) {
				return ltrim(rtrim(str, chars), chars);
			}
			 
			function ltrim(str, chars) {
				chars = chars || "\\s";
				return str.replace(new RegExp("^[" + chars + "]+", "g"), "");
			}
			 
			function rtrim(str, chars) {
				chars = chars || "\\s";
				return str.replace(new RegExp("[" + chars + "]+$", "g"), "");
			}