﻿var PageReady = function() {
	var btnNext = $$('div.btnNext a')[0];
	if (!btnNext) return;
	btnNext.disabled = !Page.isValid();
	btnNext.addEvent('click', function() {if (this.disabled) return false;if (this['validation']) this['validation']();if (this.disabled) return false;Page.setProgress(true);this.disabled = true;window.onbeforeunload = null;window.onunload=null;window.location.href = this.href;});
    var btnPrev = $$('div.btnPrev a')[0];
	if (btnPrev)btnPrev.addEvent('click', function() { if (this['validation']) this['validation'](); if (this.disabled) return false; this.disabled = true;window.onbeforeunload = null;window.onunload=null; window.location.href = this.href; });
	document.addEvent('keyup', function(e){ var e = new Event(e); if (!btnNext.disabled && e.code==13 && e.target.tagName != 'TEXTAREA') if (Page.isValid()) window.setTimeout(function(){btnNext.fireEvent('click');},50); }.bind(this));
	window.setTimeout(Page.initPage, 50);
	if (CloseText!='') { window.onbeforeunload = function () { return CloseText; } }
	else window.onbeforeunload = null;
}

var Page = {
	initPage: function () {
		var btnNext = $$('div.btnNext a')[0];
		Page.setProgress();
		Page.createMenus();
		Page.createCheckBoxes(btnNext);
		Page.createRadios(btnNext);
		Page.createInputs(btnNext);
		Page.initCheckBoxes();
		Page.initRadios();
		Page.initInputs();
		Page.createHierarchical();
		Page.setSelectedInput();
		if (typeof(initPage) == 'function') initPage();
	},
	currentStep: function () {
		var step = parseInt (this.queryString()['step']);
		return (isNaN(step)?1:step);
	},
	queryString: function () {
		var qs = {};
		document.location.search.substring(1).split('&').each(function (item) { var i = item.split('='); qs[i[0].toLowerCase()] = i[1]; });
		return qs;
	},
	setProgress: function(proceed) {
		step = this.currentStep();
		if (proceed) step = step++;
		//parent.location.hash = step;
		if (!window.parent) return;
		if (window.parent.setProgressBar) window.parent.setProgressBar((Math.sqrt(step)-1)*36.5);
	},
	isValid: function() {
		var AllOK = true;
		$$('input[id$=Val]').each(function(hf) { if (hf.get('value') == '') AllOK = false; });	
		var btnNext = $$('div.btnNext a')[0];
		btnNext.removeClass(AllOK?'Disabled':'Active');
		btnNext.addClass(!AllOK?'Disabled':'Active');
		return AllOK;
	},
	createMenus: function() {
		$$('ul.Menu').each(function (ul) {  
				ul.parentDiv = parentDiv;
				ul.childInputs = childInputs;
		});
	},
	createRadios: function(btnNext) {
		$$('div.RadioButton ul.Menu').each(function (ul) {  
			ul.getElements('a').each(function (a, idx) {
				a.set('value', idx+1);
				a.addEvent('click', function() {
					this.getParent('ul').getElements('a').each(function (aa) { aa.removeClass('Selected'); });
					this.addClass('Selected');
					this.getParent('div').getElement('input[type=hidden]').set('value', this.get('value'));
					if (a['afterClick']) a['afterClick']();
					if (Page.isValid() && btnNext.disabled) { btnNext.disabled = false; btnNext.fireEvent('click'); }
					else btnNext.disabled = !Page.isValid();
				});
				a.addEvent('keypress', function(e) {var e = new Event(e);btnNext.disabled = !Page.isValid();if ( e.code==13 ) return false;else if(e.code==32) a.fireEvent('click');}.bind(this));
			});
		});
	},
	createInputs: function(btnNext) {
		$$('div.Input ul.Menu').each(function (ul) {  
			if (ul.childInputs())
				ul.getElements('input[id^=txt],textarea').each(function(input) {
					if (!!input.get('disableAutoSave')) return;
					input.addEvent('keyup', function() {
						ul.getParent('div').getElement('input[type=hidden]').set('value', input.get('value'));
						if (input['validation']) input['validation']();
						btnNext.disabled = !Page.isValid();	
					});
					input.addEvent('keypress', function(e) {var e = new Event(e);btnNext.disabled = !Page.isValid();if ( e.code==13 && e.target.tagName != 'TEXTAREA') return false;}.bind(this));
					input.addEvent('change', function() {input.fireEvent('keyup');});
				});
		});
	},
	createCheckBoxes: function(btnNext) {
		$$('div.CheckBox ul.Menu').each(function (ul) {  
			ul.getElements('a').each(function (a, idx) {		
				a.set('html', '<b></b>' + a.get('text'));
				a.set('value', idx+1);
				a.addEvent('click', function() {
					var objHdn = this.getParent('div').getElement('input[type=hidden]');
					var curArr = objHdn.get('value').split(',').erase('');
					if (this.hasClass('Selected')) {curArr.erase(this.get('value')+'');this.removeClass('Selected');}
					else {curArr.include(this.get('value')+'');this.addClass('Selected');}
					objHdn.set('value', curArr.join(','));
					btnNext.disabled = !Page.isValid();
				});
				a.addEvent('keypress', function(e) {var e = new Event(e);btnNext.disabled = !Page.isValid();if ( e.code==13 ) return false;else if(e.code==32) a.fireEvent('click');}.bind(this));
			});
		});
	},
	initRadios: function () {
		$$('div.RadioButton ul.Menu').each(function (ul) {
			var selected = ul.getParent('div').getElement('input[type=hidden]').get('value');
			if (selected != '' && ul.getElements('a') && (parseInt(selected)-1)>=0) { 
				var selOption = ul.getElements('a')[parseInt(selected)-1];
					selOption.addClass('Selected');
				//if ( ul.parentDiv().getStyle('display')	== 'none') {ul.parentDiv().setStyle('visibility','hidden');ul.parentDiv().setStyle('display','');}
				ul.scrollTop = ul.hasClass('Scroll')?selOption.getParent('li').offsetTop:0;
				//if ( ul.parentDiv().getStyle('visibility')	== 'hidden') {ul.parentDiv().setStyle('display','none');ul.parentDiv().setStyle('visibility','visible');}
			}
		});
	},
	initCheckBoxes: function () {
		$$('div.CheckBox ul.Menu').each(function (ul) {  
			ul.getParent('div').getElement('input[type=hidden]').get('value').split(',').each(function(aId) {if (aId && ul.getElements('a')) ul.getElements('a')[parseInt(aId)-1].addClass('Selected'); });
		});
	},
	initInputs: function () {
		$$('div.Input ul.Menu').each(function (ul) {  
			var hdnInput = ul.getParent('div').getElement('input[type=hidden]');
			if (hdnInput && hdnInput.get('value') != '') {
				var values = hdnInput.get('value').split(':');
				hdnInput.set('value', values[0]);
				var lis = ul.childInputs();
				if (lis[0]&&lis[0].get('value')=='') lis[0].set('value', (values.length==1 ? values[0] : values[1]));
			}
		});
	},
	createHierarchical: function () {
		var uls = $$('ul.Menu');
		if ( uls && uls.length > 1 ) {
			skipFirstHierarchical = (typeof(skipFirstHierarchical)!="undefined");
			skipHierarchical = (typeof(skipHierarchical)!="undefined");
			for( var i=1;i<uls.length;i++) {
				if ((skipFirstHierarchical&&(i==1))||(skipHierarchical)) continue;
				var ParHdn = uls[i-1].getParent('div').getElement('input[type=hidden]');
				var CurHdn = uls[i].getParent('div').getElement('input[type=hidden]');
				if ( (CurHdn && CurHdn.get('value').replace(/\s/g, "") != '')||(ParHdn && ParHdn.get('value').replace(/\s/g, "") != '')) uls[i].parentDiv().setStyle('display', '');
				else {
					uls[i].childInputs = childInputs;
					uls[i].parentDiv().setStyle('display', 'none');
					if (uls[i-1].parentDiv().hasClass('Input')) uls[i-1].childInputs().each( function(elm){ elm.set('tempID',i); elm.addEvent('keyup', function() { uls[this.get('tempID')].parentDiv().setStyle('display', ''); }); } );
					if (uls[i-1].parentDiv().hasClass('Input')) uls[i-1].getElements('select').each( function(elm){ elm.set('tempID',i); elm.addEvent('change', function() { uls[this.get('tempID')].parentDiv().setStyle('display', ''); }); } );
					if (uls[i-1].parentDiv().hasClass('RadioButton')) uls[i-1].getElements('a').each( function(elm){  elm.set('tempID',i); elm.addEvent('click', function() {uls[this.get('tempID')].parentDiv().setStyle('display', ''); }); } );
					if (uls[i-1].parentDiv().hasClass('CheckBox')) uls[i-1].getElements('a').each( function(elm){ elm.set('tempID',i); elm.addEvent('click', function() { uls[this.get('tempID')].parentDiv().setStyle('display', ''); }); } );
				}
			}
		}
	},
	setSelectedInput: function () {
		var uls = $$('ul.Menu');
		if ( uls && uls.length > 0 ) {
			//uls[0].childInputs = childInputs; uls[0].parentDiv = parentDiv;
			if (uls[0].parentDiv().hasClass('Input') && uls[0].childInputs().length > 0 && uls[0].childInputs()[0].tagName != 'TEXTAREA') uls[0].childInputs()[0].focus();
		}
	}
}
var childInputs = function () { return this.getElements('input[type=text],input[type=password],textarea'); }
var parentDiv = function () { return this.getParent('div').getParent('div'); }
function ContainsOnlyValidUserNameChars(str){for(i=0;i<str.length;i++){ch=str.substring(i,i+1);if(!(ch>='A'&&ch<='Z'||ch>='a'&&ch<='z'||ch>='0'&&ch<='9'||ch>='א'&&ch<='ת'))return false;}return true;}
function checkNoSigns(str){offset=0;var CheckNoSign="<>";for(i=0;i<CheckNoSign.length;i++){if(str.indexOf(CheckNoSign.charAt(i),offset)!=-1)return false;}return true;}
function removeSpaces(){this['value'] = this['value'].replace(/\s/g, "");}
var ClearDrop = function (drop) { var dropLength = drop.options.length; for(i=0;i<dropLength;i++) drop.options[0] = null; drop.disabled = true; }

// NO BACK
window.history.forward(1);

//***** temporary Fix. ******//
function tellerror(msg, url, linenumber){
	if (url.indexOf('hadTwoErrors') > -1) return false;
	if (url.indexOf('hadError') == -1) window.location.href = url + '&hadError';
	else window.location.href = url + '&hadTwoErrors';
	return true;
}
//window.onerror = tellerror;
