// **********************************************************
var myDict = new Dictionary();
myDict.Language="bg"; // The Default Language

// Adding the Words
myDict.addWord({"keyword":"invalid_email", "bg":" съдържа невалиден e-mail!", "en":" contains invalid e-mail", "ru":" сдерживает неправильную электронную почту!"});
myDict.addWord({"keyword":"is_required", "bg":" е задължително поле!", "en":" is a required field", "ru":" требовано поле!"});
myDict.addWord({"keyword":"dont_hack", "bg":" Не се опитвайте да хакнете формата", "en":" Please don't try to hack the form", "ru":" Please don't try to hack the form"});
myDict.addWord({"keyword":"enter_number", "bg":" трябва да съдържа число", "en":" should be a number", "ru":" должно сдержать число!"});
myDict.addWord({"keyword":"form_overall_message", "bg":"Проблеми в следните полета:", "en":"There is a problem with the fields below:", "ru":"Есть проблема с полями ниже:"});
// **********************************************************



var newwin;
function popup(winurl,winname,w,h,scroll){

	LeftPosition = (screen.width) ? (screen.width-w)/2 : 0;
	TopPosition = (screen.height) ? (screen.height-h)/2 : 0;

	settings ='height='+h+',width='+w+',top='+TopPosition+',left='+LeftPosition+',scrollbars='+scroll+',no-resize'
	newwin = window.open(winurl,winname,settings);
	setTimeout('newwin.focus();',250);

}

// *********************************************************

function validateEmail(strEmail) {
	rtrn=true;
	validRegExp = /^[^@]+@[^@]+.[a-z]{2,}$/i;

	if (strEmail) {if (strEmail.search(validRegExp) == -1) {rtrn=false;}
	              } 
	else {rtrn=false;}
	return rtrn;
}

// *********************************************************
function CheckForm(FormObject, ElementsToCheck, DictObject) {
	
	var ErrorMessages = new Array();
	var FocusElements = new Array();
	

	ElementsToCheck.each(function(CurValidation) {
  	
	  
		//alert("CurValidation ===>  field="+CurValidation.field+", validation="+CurValidation.validation+", required="+CurValidation.required+" == "+$(CurValidation.field).value);
  		
		// Checking for requirement  
		if (CurValidation.required == true) {
			
			
			if (($(CurValidation.field).value==undefined) || ($(CurValidation.field).value=='')) {
				ErrorMessages.push(CurValidation.title+DictObject.getWord('is_required'));
				FocusElements.push(CurValidation.field);
				return false;
			} 
			
		}
		
		// Checking for validation type
  		switch(CurValidation.validation) {
			
			/////////////////////////////////////////////////////////////////////////////////
			case "string":
				if ($(CurValidation.field).value.indexOf("script")!=-1) {
					ErrorMessages.push(DictObject.getWord('is_required'));
					FocusElements.push(CurValidation.field);
				}
			break;
			/////////////////////////////////////////////////////////////////////////////////
			case "email": 
				if (!validateEmail($(CurValidation.field).value)) {
					ErrorMessages.push(CurValidation.title+DictObject.getWord('invalid_email'));
					FocusElements.push(CurValidation.field);
				}
			break;
			/////////////////////////////////////////////////////////////////////////////////
			case "int": 
				if ($(CurValidation.field).value.toString().search(/^-?[0-9]+$/) != 0) {
					ErrorMessages.push(CurValidation.title+DictObject.getWord('enter_number'));
					FocusElements.push(CurValidation.field);
				}
			break;
			/////////////////////////////////////////////////////////////////////////////////

			
		}

  	
	});
	


  	///////////////////////////////////////////////////////////////////////////////////
  	// Final
  	if (ErrorMessages.length!=0) {
		alert(DictObject.getWord('form_overall_message')+"\n\n"+ErrorMessages.join("\n"));
		
		// Focusing the first wrong field
		FieldToFocus=FocusElements.shift();
		$(FieldToFocus).focus();
		$(FieldToFocus).select();
	} else {
		FormObject.submit();
	}
  	///////////////////////////////////////////////////////////////////////////////////
	
		
}