/*	(c) SMART MESS Site Manager(tm) 2008-2011	www.spruden.com		*/

if (!frm) var frm = {
	Obj : null,
	lang : {},
	ie : (document.all && !window.opera) ? true : false,
	build : '08.01.2011 22:46:50',
	ver : '5.3.1',
	id : 'form_bar',
	tempId : 'frm_calculate',
	addButton : false,
	fieldsListen : ['text','password','textarea','submit','button'],
	skipFieldsName : [],
	foundFields : [],
	javaScriptMode : 'add', 
	delay : 5000,
	selected : '#FFCC00',
	img : false,
		
	$ : function (id) {
		return id ? document.getElementById(id) : null;
	},	
	
	setConf : function(key,value) {
		frm[key] = value;
	}, 
	
	trim : function(str) {
		return str.replace(/^\s+|\s+$/g, '');
	},
	
	setStyles : function(el, styles) {
		for (var Arr in styles) {
			if (frm.ie && Arr == 'opacity') {
				if (styles[Arr] > 0.99) el.style.removeAttribute('filter');
				else el.style.filter = 'alpha(opacity='+ (styles[Arr] * 100) +')';
			}
			else el.style[Arr] = styles[Arr];
		}
	},
	
	setPriorites : function(el, priorites) {
		for (var Arr in priorites) {
			el[Arr] = priorites[Arr];
		}
	},
	
	divBuilder : function(el) {
		var a=document.createElement("div");
		frm.setPriorites(a,{id:frm.tempId + '_msg',innerHTML:''});
		frm.setStyles(a,{display:'none',margin:'4px',padding:'12px',borderTop:'1px solid Silver',borderRight:'2px solid Black',borderBottom:'2px solid Black',borderLeft:'1px solid Silver',backgroundColor:'#FFFFF0',color:'#A52A2A',textAlign:'left'});
		el.insertBefore(a,el.firstChild);
	},
	
	submitBtnBuilder : function() {
		if (frm.addButton && frm.Obj) {
			var a=document.createElement('input');
			frm.setPriorites(a,{type:'hidden',name:frm.addButton,value:'Y'});
			frm.Obj.insertBefore(a, frm.Obj.firstChild);
		}		
	},
		
	addEventListener : function(el, event, func) {
		try {
			el.addEventListener(event, func, false);
		} catch (e) {
			try {
				el.detachEvent('on'+ event, func);
				el.attachEvent('on'+ event, func);
			} catch (e) {
				el['on'+ event] = func;
			}
		} 
	},
	
	inArray : function(elem,array) {
		for (var i = 0; i < array.length; i++) {
			if (array[i] === elem) return true;
		}
		return false;
	},
	
	msg : function(msgKey,mode) {
		var a = frm.$(frm.tempId + '_msg');
		if (a) {
			var msg = (typeof frm.lang[msgKey] == 'string') ? frm.lang[msgKey] : '';
			frm.setStyles(a,{display:(msg ? 'block' : 'none')});
			if (mode && frm.img) {
				frm.setStyles(a,{paddingLeft:'44px',backgroundImage:'url(' + frm.img + ')',backgroundRepeat:'no-repeat',backgroundPosition:'15px 50%'});
			}
			frm.setPriorites(a,{innerHTML:msg});	
		}
	},
		
	checkField : function(val,name) {
		val = frm.trim(val);
		
		if (frm.inArray(name,frm.skipFieldsName)) { // skip Fields //
			return true;
		} else if (val == '') {
			frm.msg('_a');
			return false;		
		} else if (name == 'email' && /^[\w-]+(\.[\w-]+)*@([\w-]+\.)+[a-zA-Z]{2,7}$/.test(val) == false) {
			frm.msg('_b');
			return false;
		} else {
			return true;
		}
	},

	sendData : function() {
		var smt = function() { frm.Obj.submit(); };
		setTimeout(smt,frm.delay);	
	},	
	
	lockForm : function() {
		for (var i=0; i<frm.foundFields.length; i++) {
			var r = frm.$(frm.foundFields[i]);
			r.style.cursor = 'progress';
			if (r.type == 'submit' || r.type == 'button') {
				r.disabled = true;		
			} else {
				r.readOnly = true;	
			}
		}
	},	

	onsubmit : function() {		
		var cnt=0;
		var length=frm.foundFields.length;		
		
		for (var i=0; i<length; i++) {
			var r = frm.$(frm.foundFields[i]);
			if (frm.checkField(r.value,r.name)) {
				r.style.backgroundColor = "#FFFFFF";
				cnt++;				
			} else {				
				r.focus();
				r.style.backgroundColor = frm.selected;
				break;
			}		
		}
		
		if (cnt == length) {
			frm.msg('_c',true);
			frm.lockForm();
			frm.sendData();
		}
		
		return false;
	},	
	
	preloadImage : function() {
		if (frm.img) {
			var el = new Image();
			el.src = frm.img;
		}		
	},
		
	
	knobPriorites : function(el) {
		if (el.type == 'submit') { // normal mode //
			frm.javaScriptMode = false;
			frm.setPriorites(el,{disabled:false});
			frm.setStyles(el,{cursor:'pointer'});
			frm.addButton = el.name;
		} else if (el.type == 'button' && frm.javaScriptMode) {
			frm.javaScriptMode = el.id;
			frm.setStyles(el,{cursor:'pointer'});
			frm.setPriorites(el,{disabled:false,onclick:function(){ return frm.onsubmit(); }});
			frm.addButton = el.name;
		}
		
	},	
	
	lookForField : function() {
		var el = frm.Obj;
		if (el) { 
			var obj;
			var cnt = 0;
			for (var i=0; i<el.elements.length; i++) {
				obj = el.elements[i];
				if (frm.inArray(obj.type,frm.fieldsListen)) {
					obj.id = frm.tempId + '_input' + i;
					frm.foundFields[cnt++] = obj.id;
					frm.knobPriorites(obj);
				}	
			}
		}
	},
	
	lookForForm : function() {
		var a = frm.$(frm.id);
		if (a) {
			a.style.display = '';
			var b = a.getElementsByTagName('FORM');
			frm.Obj = b[0];	// listen first form //
			if (frm.Obj) {
				frm.lookForField();				
				frm.divBuilder(a);
				frm.submitBtnBuilder();
				frm.Obj.onsubmit = function() { return frm.onsubmit(); }
			}
		}
	}	
	
};


frm.lang = {
		_a : 'Пожалуйста, заполните, выделенные поля!',
		_b : 'Пожалуйста, проверьте правильность <b>E-mail</b> адреса!',
		_c : '<b>Данные загружаются, пожалуйста, подождите...</b>'
};

frm.setConf('id','commentary_bar');
frm.setConf('img','/sm/images/ico_script.gif');
frm.setConf('delay',5000);
frm.setConf('selected','#FFCC00');

frm.preloadImage();
frm.addEventListener(window,'load',frm.lookForForm);
