/*  Copyright 2010 by Marco Stocco <http://www.my-w.org>
 * -----------------------------------------------------------
 *
 * The main javascript library of the web content management system myW
 *
 * This script is distributed under the GNU General Public License.
 *
 * Read the entire license text here: http://www.gnu.org/licenses/gpl.html
 */

var myw = {

	/* Vars set by perl in header.pm */
	globalHereditableParams : '',
	instanceName : '',
	frontendName : '',
	static_tpc1_fileName : '',
	searchId : 0,
	loginId : 0,
	
	/*****************/
	
	/* variables for the mouse position */
	mouse_x : 0,
	mouse_y : 0,

    scrollObj_topOld : 0,
    scrollObj_winHeightOld : 0,
	
	/* the windows */
	cwin_main : new Object(),
	cwin_print : new Object(),
	cwin_record : new Object(),
	cwinImg : new Object(), 
	cwinHelp : new Object(),
	cwinFirstAid : new Object(),
	cwinCal : new Object(),	
	
	checkLoadedScripts : new Object(),
			
	is_ie : (document.getElementById && document.all && document.styleSheets)?1:0,
	nn6 : (document.getElementById && !document.all)?1:0,
	
	getGHP : function(p) {
		p = p.replace(/&amp;/g,'&');
		myw.globalHereditableParams = p;
	},
	
	addEvent : function(el, evname, func) {
		if (el.attachEvent) {
			el.attachEvent('on'+evname,func);
		} else if (el.addEventListener) {
			el.addEventListener(evname,func,true);
		} else {
			el['on'+evname] = func;
		}
	},
	
	removeEvent : function(el, evname, func) {
		if (el.detachEvent) { 
			el.detachEvent("on" + evname, func);
		} else if (el.removeEventListener) { 
			el.removeEventListener(evname, func, true);
		} else {
			el["on" + evname] = null;
		}
	},
	
	getWindowInfos : function() {
		var o = new Object();
		if (myw.is_ie) {
			if(document.documentElement) {
				o.width = document.documentElement.clientWidth;
				o.height = document.documentElement.clientHeight;
				o.scrollLeft = document.documentElement.scrollLeft;
				o.scrollTop = document.documentElement.scrollTop;
			} else if (document.body) {
				o.width = document.body.clientWidth;
				o.height = document.body.clientHeight;
				o.scrollLeft = document.body.scrollLeft;
				o.scrollTop = document.body.scrollTop;
			}
		} else {
			o.width = window.innerWidth;
			o.height = window.innerHeight;
			o.scrollLeft = window.pageXOffset;
			o.scrollTop = window.pageYOffset;
		}
		return o;
	},
	
	dialog_hide : function() {
		myw.mask_hide();
		if (document.getElementById('myw_div_dialog'))
			document.getElementById('myw_div_dialog').style.display='none';
	},
	
	dialog_init : function() {
		var d = document.getElementById('myw_div_dialog');
		if (d) {
			if (d.style.display != 'none')
				return 0;
			d.style.display='block';
		} else {
			d = document.createElement("div");
			d.id = 'myw_div_dialog';
			document.body.appendChild(d);
		}
		myw.mask_show(function() {
			jQuery(document.getElementById('myw_div_dialog')).dialog('close');
		});
		return 1;
	},
	
	dialog_alert : function(l,msg) {
		if (myw.dialog_init()) {
			var d = document.getElementById('myw_div_dialog');
			d.innerHTML = '<div class="myw_dialog_alert">'+msg+'</div>';
			
			var t = myw.lang.frontend.texts.alert;
			if (myw.admin && myw.admin.lang && myw.admin.lang == l)
				t = myw.lang.admin.frontendTexts.alert;
			jQuery(d).dialog({
				title : t + ' ...',
				close : function() {
					myw.dialog_hide();
				},
				buttons : {
					'OK': function() {
						jQuery(this).dialog('close');
					}
				}
			},'open');
		}
	},
	
	dialog_confirm : function(l,msg,func) {
		if (myw.dialog_init()) {
			var d = document.getElementById('myw_div_dialog');
			d.innerHTML = '<div class="myw_dialog_confirm">'+msg+'</div>';
			var dialog_buttons = new Object();
			dialog_buttons['OK'] = func;
			
			var t = myw.lang.frontend.texts.confirm;
			var c = myw.lang.frontend.texts.cancel;
			if (myw.admin && myw.admin.lang && myw.admin.lang == l) {
				t = myw.lang.admin.frontendTexts.confirm;
				c = myw.lang.admin.frontendTexts.cancel;
			}
			
			dialog_buttons[c] = function() { myw.dialog_close(); }
			jQuery(d).dialog({
				title : t + ' ...',
				height: 'auto',
				close : function() {
					myw.dialog_hide();
				},
				buttons : dialog_buttons
			},'open');
		}
	},

	dialog_close : function() {
		jQuery(document.getElementById('myw_div_dialog')).dialog('close');
	},
	
	/* from tinybox function total */
	getDocumentSize : function(d) {
		var b=document.body, e=document.documentElement;
		return d?Math.max(Math.max(b.scrollHeight,e.scrollHeight),Math.max(b.clientHeight,e.clientHeight)):
		Math.max(Math.max(b.scrollWidth,e.scrollWidth),Math.max(b.clientWidth,e.clientWidth));
	},
		
	popup_center : function(d,w,h) {
		var winInfos = myw.getWindowInfos();
		d.style.width = w+'px';
		d.style.height = h+'px';
		d.style.left = Math.round(((winInfos.width/2)-(w/2))+winInfos.scrollLeft)+'px';
		d.style.top = Math.round(((winInfos.height/2)-(h/2))+winInfos.scrollTop - 50)+'px';
	},
	
	popup_showImg : function(l,o) {
		myw.popup_show('<img id="myLayer_img" src="'+l+'" width="'+o.width+'" height="'+o.height+'" />',o,undefined,undefined);
	},
	
	popup_show : function(string,_vars,f_onstart,f_onclose) {
		if (!_vars.width || !_vars.height || _vars.width=='' || _vars.height=='') {
			myw.dialog_alert(myw.frontend.lang,'The width and/or height of the popup layer are not right!<br/>\nI cannot proceed.');
			return;
		}
				
		var newDiv = document.createElement("div");
		newDiv.id = 'myLayer';
		newDiv.style.zIndex = 21;
			
		document.body.appendChild(newDiv);
		newDiv.style.display='block';	
		newDiv.innerHTML = '<div id="myLayer_content" class="myLayer_content">'+string+'</div>';
								
		if (myw.ajax.popup_iframe && myw.ajax.popup_iframe.id=='myLayer_content_iframe') {
			document.getElementById('myLayer_content').appendChild(myw.ajax.popup_iframe);
			myw.ajax.popup_iframe = [];
		}
						
		var effectNo = 1; /* default effect */
		if (_vars.effectNo>0)
			effectNo = _vars.effectNo;
		
		if (effectNo>0) {
			_vars.onstart = f_onstart;
			_vars.onclose = f_onclose;
			
			var func;
			if (window.myw.websiteTemplate && window.myw.websiteTemplate['popup_effect_'+effectNo]) {
				func = 'myw.websiteTemplate.popup_effect_'+effectNo;
			} else if (window.myw.my && window.myw.my.effects_popup && window.myw.my.effects_popup['effect_'+effectNo]) {
				func = 'myw.my.effects_popup.effect_'+effectNo;
			} else if (window.myw.effects_popup['effect_'+effectNo]) {
				func = 'myw.effects_popup.effect_'+effectNo;
			} else {
				/* default effect function */
				func = 'myw.effects_popup.effect_1';
			}
			try {
				eval(func)(_vars);
			} catch (ex) {
				alert('Error by evalueting the expression:\n'+func+'\nError message:\n' + ex.message);
			}
		}
	},
		
	mask_show : function(funcByClose) {
		if (!document.getElementById('mywMask')) {
			var m=document.createElement('div'); 
			m.id='mywMask';
			m.style.height=myw.getDocumentSize(1)+'px';
			m.style.width=myw.getDocumentSize(0)+'px';
			m.style.zIndex = 20;
			m.style.display='block';
			funcByClose ?
				m.onclick = funcByClose :
				m.onclick = function() {
					myw.mask_hide();
				};
			window.onresize = function() {
				var d = document.getElementById('mywMask');
				d.style.height=myw.getDocumentSize(1)+'px';
				d.style.width=myw.getDocumentSize(0)+'px'
			}
			document.body.appendChild(m);
		}
	},

	mask_hide : function() {
		if (document.getElementById('myLayer'))
			document.body.removeChild(document.getElementById('myLayer'));
		if (document.getElementById('mywMask'))
			document.body.removeChild(document.getElementById('mywMask'));
	},
	
	checkSearch : function(f) {
		if (f.searchTerm.value == '') { 
			myw.dialog_alert(myw.frontend.lang,myw.lang.frontend.texts.searchField);
		} else if (f.searchTerm.value.search(/gotologin/)>=0) {
			myw.initSubmit(myw.loginId,'beforeLogin','');
		} else {
			document.frm_main.id.value = myw.searchId;
			if (document.frm_main.page_1_1) document.frm_main.page_1_1.value = 1;
			if (document.frm_main.unt_1_1) document.frm_main.unt_1_1.value = '';
			myw.submitForm(f,document.frm_main);
		}
	},
	
	changeLang : function(lang) {
		var loc=document.location.href;
		if (loc.search(/\.html$/) != -1) {
			if (loc.indexOf('/html/'+myw.instanceName+'/')>0) {
				var A = new Array();
				A = loc.split('/');
				A[A.length-2] = lang;
				document.location.href=A.join('/');
				return;
			} else if (myw.static_tpc1_fileName != '') {	/* for the language navigation in index.html */
				document.location.href = myw.paths.website.htdocs.net + '/html/'+myw.instanceName+'/'+lang+'/'+myw.static_tpc1_fileName+'.html';
				return;
			}
		} 
		
		document.frm_main.lang.value=lang;
		if (document.frm_editContent && !document.frm_editContent.nh_fastTextEditor_id.value) {
			if (document.frm_editContent.nh_corrTextId.value) 
				myw.exportFieldValues(document.frm_editContent,document.frm_main,'nh_corrText');
		}
		document.frm_main.submit();
	},
	
	showPdf : function(unitId,unitFragment) {
		var loc=document.location.href;
		var f = document.frm_main;
		var s = '';
		
		var unitElement = f['unt_'+unitId+'_'+unitFragment];

		if (unitId && unitFragment && unitElement && unitElement.value) {
			if (unitElement.value.search(/\/html\/.*\.html/)>=0) {
				var P = unitElement.value.split('/');
				var P2 = P[P.length-1].split('_');
				var P3 = P2[0].split('-');
				s = 'lang='+f.lang.value+'&src='+P3[0]+'&id='+P3[1]+myw.globalHereditableParams;
			} else {
				var s = myw.ajax.decodeURL(unitElement.value);
				var A = s.split('&');
				var B = new Array();
				for(var i=0;i<A.length;i++) {
					if (A[i].indexOf('getUnit=')==-1 && A[i].indexOf('getUnitFragment=')==-1 && A[i].indexOf('tid=')==-1 && A[i].search(/tid_\d+\_\d+/)==-1 && A[i].indexOf('print=')==-1 && A[i].indexOf('gh_websiteMainTemplate=')==-1)
						B.push(A[i]);
				}
				s = B.join('&');
				if (s.indexOf('http')>=0 && s.indexOf('?')>0) {
					var A = s.split('?');
					s = A[1];
				}
			}
		} else {
			var P = new Array();
			for(var i=0;i<f.elements.length;i++) {
				if (f.elements[i].value && f.elements[i].name != 'print' && f.elements[i].name.search(/unt_\d+\_\d+/) == -1 && f.elements[i].name.indexOf('tid') == -1)
					P.push(f.elements[i].name+'='+f.elements[i].value);
			}
			s = P.join('&');
		}
		myw.ajax.execute('get',myw.paths.website.cgi.net+'/bin/ajax/pdf.pl',s,'myw_div_pdf_'+unitId+'_'+unitFragment,'',1);
	},
	
	showPrint : function(unitId,unitFragment) {
		var f = document.frm_main;
		var loc=document.location.href;
		var A = new Array();
				
		var unitElement = f['unt_'+unitId+'_'+unitFragment];
		
		if (loc.indexOf('index.pl')>0) {
			var v;
			if (unitId && unitFragment && unitElement && unitElement.value) {
				var s = myw.ajax.decodeURL(unitElement.value);
				var A = s.split('&');
				var B = new Array();
				for(var i=0;i<A.length;i++) {
					if (A[i].indexOf('getUnit=')==-1 && A[i].indexOf('getUnitFragment=')==-1 && A[i].indexOf('tid=')==-1 && A[i].search(/tid_\d+\_\d+/)==-1 && A[i].indexOf('print=')==-1 && A[i].indexOf('gh_websiteMainTemplate=')==-1)
						B.push(A[i]);
				}
				s = B.join('&');
				if (s.indexOf('http')>=0 && s.indexOf('?')>0) {
					var A = s.split('?');
					s = A[1];
				}
				s.indexOf('tid_')>0 ?
					myw.openWin(myw.paths.website.cgi.net+'/bin/index.pl?'+s+'&print=1&nh_startNewWin=1',myw.website.windows.record.width,myw.website.windows.record.height,'win_record','yes'):
					myw.openWin(myw.paths.website.cgi.net+'/bin/index.pl?'+s+'&print=1&nh_startNewWin=1',myw.website.windows.print.width,myw.website.windows.print.height,'win_print','yes');
			} else {
				var P = new Array();
				for(var i=0;i<f.elements.length;i++) {
					if (f.elements[i].value && f.elements[i].name != 'print' && f.elements[i].name.search(/unt_\d+\_\d+/) == -1 && f.elements[i].name.indexOf('tid') == -1)
						P.push(f.elements[i].name+'='+f.elements[i].value);
				}
				var s = 'print=1&nh_startNewWin=1&' + P.join('&');
				f.src.value == '' || f.src.value == 'topics' ?
					myw.openWin(myw.paths.website.cgi.net+'/bin/index.pl?'+s,myw.website.windows.print.width,myw.website.windows.print.height,'win_print','yes') :
					myw.openWin(myw.paths.website.cgi.net+'/bin/index.pl?'+s,myw.website.windows.record.width,myw.website.windows.record.height,'win_record','yes');
			}
		} else {
			if (loc.indexOf('/html/'+myw.instanceName+'/')>0) {
				if (unitId && unitFragment && unitElement && unitElement.value) {
					if (unitElement.value.indexOf('_pg') >= 0) {
						A = unitElement.value.split('_');
						var B = new Array();
						for(var i=0;i<A.length;i++) {
							if (A[i].search(/^unt\d+/) == -1 && A[i].search(/^pg\d+/) == -1)
								B.push(A[i]);
						}
						var l = B.join('_');
						l += '_pr.html';
						myw.openWin(l,myw.website.windows.print.width,myw.website.windows.print.height,'win_print','yes');
					} else {
						A = unitElement.value.split('_');
						myw.openWin(A[0] + '.html',myw.website.windows.record.width,myw.website.windows.record.height,'win_record','yes');
					}
				} else {
					if (loc.indexOf('_tid')>0) {
						A = loc.split('_');
						myw.openWin(A[0]+'.html',myw.website.windows.record.width,myw.website.windows.record.height,'win_record','yes');
					} else {
						loc.indexOf('_pg')>0 ?
							A = loc.split('_') :
							A = loc.split('.html');
						myw.openWin(A[0]+'_pr.html',myw.website.windows.print.width,myw.website.windows.print.height,'win_print','yes');
					}
				}	
			/* from index.html */
			} else if (myw.static_tpc1_fileName != '') {
				myw.openWin(myw.paths.website.htdocs.net + '/html/'+myw.instanceName+'/'+lang+'/'+myw.static_tpc1_fileName+'_pr.html',myw.website.windows.print.width,myw.website.windows.print.height,'win_print','yes');
			} else {
				myw.openWin(myw.paths.website.cgi.net+'/bin/index.pl?lang='+myw.lang.frontend+'&id=1&print=1&nh_startNewWin=1'+myw.globalHereditableParams,myw.website.windows.print.width,myw.website.windows.print.height,'win_print','yes');
			}
		}
	},
	
	changeImage : function(imgId,pathNewImg) {
		document.getElementById(imgId).src = pathNewImg;
	},
	
	changeStyle : function(elementId,newClass,styleObject) {
		var d = document.getElementById(elementId);
		if (newClass) {
	 		d.className = newClass;
	 		if (document.getElementById(elementId+'_a')) 
	 			document.getElementById(elementId+'_a').className = newClass; 
	 	}
		for (var o in styleObject)
			if(styleObject[o]) d.style[o] = styleObject[o];
	},
	
	changeString : function(elementId,string) {
		var d = document.getElementById(elementId);
		if (d) d.innerHTML = string;
	},
	
	expand : function(elementName,elementId,option,imgName) {
		/*
		option		-1 = close all
					1 = expand all; 
					0 = expand/close only the choosen element; 
					2 = expand/close the choosen element and close the others by expanding the choosen element
		*/
		
		if (!imgName)
			imgName = 'default';
		
		imgFolder = myw.paths.website.htdocs.net+'/myWebsite/img/expand/'+imgName+'_';
		
		var els = myw.getElementsByClassName(elementName);
		if (option == 1 || option == -1) {
			for(var i=0;i<els.length;i++) {
				var img;
				if (option == -1) {
					img = 'plus';
			   		jQuery(els[i]).animate({height:'hide'}, 'medium');
				} else {
					img = 'minus';
			   		jQuery(els[i]).animate({height:'show'}, 'medium');
				}
				A = els[i].id.split('_');
				var elName = A[0];
				var elId = A[1];
			   	if (document.getElementById(elName+'_img_'+elId)) 
			   		document.getElementById(elName+'_img_'+elId).src = imgFolder+img+'.gif';
			}
		} else {
			var el = document.getElementById(elementName+'_'+elementId);
			if (option == 2 && el.style.display == 'none') {
				for(var i=0;i<els.length;i++) {
					jQuery(els[i]).animate({height:'hide'}, 'medium');
					A = els[i].id.split('_');
					var elName = A[0];
					var elId = A[1];
					if (document.getElementById(elName+'_img_'+elId))
						document.getElementById(elName+'_img_'+elId).src = imgFolder + 'plus.gif';
				}
			} 
			if (el) {
				var img;
			   	if (el.style.display == 'block') {
					img = 'plus';
			   		jQuery(el).animate({height:'hide'}, 'medium');
				} else {
			   		img = 'minus';
			   		jQuery(el).animate({height:'show'}, 'medium');
			 	}
			   	if (document.getElementById(elementName+'_img_'+elementId)) 
			   		document.getElementById(elementName+'_img_'+elementId).src = imgFolder+img+'.gif';
			}
		}
	},
	
	setFocus : function(n) {
		myw["c"+n].focus();
	},
	
	getElementsByClassName : function(el) {
		if (!el)
			return;
		var els = new Array();
		if(document.getElementsByClassName){ 
			els = document.getElementsByClassName(el+'_class');
		} else {
			var DIVS = document.getElementsByTagName("div");
			for(var i=0;i<DIVS.length;i++) {
				if(DIVS[i].className.indexOf(el+'_class')!=-1) 
					els.push(DIVS[i]);
			}
		}
		return els;
	},
	
	openWin : function(link,width,height,name,toolbar) {
		var openNewWin = 0;
		if (name == "dynName") {
			openNewWin = 1;
			var t = new Date();
			name = '_dynWin_' + t.getMinutes() + '_' + t.getSeconds() + '_' + t.getMilliseconds();
		} else {
			if (myw["c"+name] && myw["c"+name].closed == false) {
				myw["c"+name].document.location.href=link;
				window.setTimeout("myw.setFocus('"+name+"')",300);
			} else {
				openNewWin = 1;
			}
		}
		if (openNewWin == 1) {
			if (width==0 && height==0) {
				width = screen.availWidth-20; 
				height = screen.availHeight-20; 	
				myw["c"+name] = window.open(link,name,"location=no,directories=no,toolbar="+toolbar+",status=no,resizable=no,scrollbars=yes,width="+width+",height="+height);
				myw["c"+name].moveTo(10,0);
			} else {
				toolbar = "yes";
				myw["c"+name] = window.open(link,name,"location=no,directories=no,toolbar="+toolbar+",status=no,resizable=yes,scrollbars=yes,width="+width+",height="+height);
				var moveLeft = (self.screen.width - width) / 2;
				var moveHeight = (self.screen.height - height) / 2;
				myw["c"+name].moveTo(moveLeft,moveHeight);
			} 
		}
	},
	
	getRandomString : function(l) {
		if (!l)
			l = 4;
		var s = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXTZabcdefghiklmnopqrstuvwxyz';
		var rs = '';
		for (var i=0; i<l; i++) {
			var n = Math.floor(Math.random() * s.length);
			rs += s.substring(n,n+1);
		}
		return rs;
	},
	
	checkWindowSize : function(w,h) {
		if (top.frames.length == 0) {
			var winInfos = myw.getWindowInfos();
			var width,height;
			if (winInfos.width<w && winInfos.height<h) {
				window.resizeTo(w,h);
				width = w;
				height = h;
			} else if (winInfos.width<w) {
				window.resizeTo(w,winInfos.height);
				width=w;
				height=winInfos.height;
			} else if (winInfos.height<h) {
				window.resizeTo(winInfos.width,h);
				width = winInfos.width;
				height = h;
			}
			if (width>0 && height>0) {
				window.moveTo(Math.round((self.screen.width-width)/2),Math.round((self.screen.height-height)/2));
			}
		}
	},
	
	selectNoEmpty : function(field) {
		if (field && field.value == 0) 
			field.selectedIndex = 0;
	},
	
	preloadImages : function(imgs) {
		var cImg = 0;
		var A = new Array();
		for (i=0;i<imgs.length;i++){
			A[i] = new Image();
			A[i].src = imgs[i];
		}
		return A;
	},
	
	createCalendar : function(trigger,format,rng,frm,flds) {
		Calendar.setup(
			{
				inputField : document.frm_main.nh_admin_calendarData, 
				ifFormat : format, 
				button : trigger,	
				firstDay : 1,
				range : rng,
				form : frm,
				fields : flds,
				onUpdate : myw.putDate
			}
		);
	},
	
	putDate : function(p) {
		var PARTOFDATE = new Array();
		PARTOFDATE = p.params.inputField.value.split(',');
		if (PARTOFDATE[0] == '%w') PARTOFDATE[0] = 7;	/* Bug vom jscalendar */
		if (PARTOFDATE[PARTOFDATE.length-2].indexOf("0") == 0) PARTOFDATE[PARTOFDATE.length-2] = PARTOFDATE[PARTOFDATE.length-2].substring(1);
		var c = 0;
		for(var i=0;i<p.params.fields.length;i++) {
			if (p.params.form[p.params.fields[i]])
				c++;
		}
		if (c==3) {
			for(var i=0;i<p.params.fields.length;i++) {
				if (p.params.form[p.params.fields[i]])
					p.params.form[p.params.fields[i]].value = PARTOFDATE[i];
			}
		} else {
			p.params.form[p.params.fields[2]].value = PARTOFDATE.join('.');
		}
	},
	
	exportFieldValues : function(fromForm,toForm,fieldNames) {
		if (document.getElementById('newInputs_'+toForm.name)) {
			document.getElementById('newInputs_'+toForm.name).innerHTML = '';
		} else {
			var newDiv = document.createElement("div");
			newDiv.id = 'newInputs_'+toForm.name;
			document.getElementById(toForm.name).appendChild(newDiv);
		}
		var inputs = '';
		for(var i=0;i<fromForm.elements.length;i++) {
			if (fromForm.elements[i].name) {
				if (fieldNames == '' || (fieldNames && fromForm.elements[i].name.indexOf(fieldNames) >= 0)) {
					if (toForm[fromForm.elements[i].name]) {
						if (fromForm.elements[i].type == 'radio') {
							if (fromForm.elements[i].checked == true) toForm[fromForm.elements[i].name].value = fromForm.elements[i].value;
						} else {
							toForm[fromForm.elements[i].name].value = fromForm.elements[i].value;
						}
					} else {
						if (fromForm.elements[i].type == 'checkbox') {
							if (!fromForm.elements[i].checked) {
								fromForm.elements[i].value = 0;
							}
						} 
						var v = '';
						if (fromForm.elements[i].type == 'radio') {
							if (fromForm.elements[i].checked == true) v = fromForm.elements[i].value;
						} else {
							v = fromForm.elements[i].value;
						}
						
						if (v) {
							v = v.replace(/"/g,'&quot;');
							inputs += '<input type="hidden" name="'+fromForm.elements[i].name+'" value="'+v+'">';
						}
					}
				}
			}
		}
		document.getElementById('newInputs_'+toForm.name).innerHTML = inputs;
	},
	
	submitForm : function(fromForm,toForm) {
		myw.exportFieldValues(fromForm,toForm,'');
		
		if (toForm.nh_formAction) { 
			if (toForm.nh_formAction.value) 
				toForm.action = toForm.nh_formAction.value;
		}
		
		if(fromForm.target) 
			toForm.target = fromForm.target;
			
		toForm.submit();
		
		if(fromForm.target) 
			toForm.target = '';
	},
	
	initSubmit : function(topicId,field,urlParams) {
		if (topicId == myw.loginId) {
			var d = document.getElementById('myw_div_login_hidden');
			if (d) {
				if (d.innerHTML == '') {
					myw.ajax.execute('get',myw.paths.website.cgi.net+'/bin/ajax/login.pl','lang='+myw.frontend.lang+'&template='+document.getElementById('myw_div_login_hidden_templateName').innerHTML+'&nh_noCache=1'+myw.globalHereditableParams,'myw_div_login_hidden','',1);
					d.style.display = 'block';
				} else if (d.style.display != 'none') {
					jQuery(d).animate({height:'hide'},'medium');
				} else {
					jQuery(d).animate({height:'show'},'medium');
				}
				return;
			}
		}
		document.location.href=myw.paths.website.cgi.net+"/bin/index.pl?lang="+myw.frontend.lang+"&id="+topicId+"&"+field+"="+myw.initSubmit_parseFormElements()+'&'+urlParams+myw.globalHereditableParams;
	},
	
	initSubmit_parseFormElements : function() {
		var f=document.frm_main;
		var S = new Array;
		for(var i=0;i<f.elements.length;i++) {
			if (f.elements[i].name) {
				if (f.elements[i].value != '' && f.elements[i].value != 0)
					S.push(f.elements[i].name + '=' + f.elements[i].value);
				if (f.elements[i].name.search(/unt_\d+\_\d+/) == 0) 
					f.elements[i].value = '';
			}
		}
		return S.join('-myw:38:2-'); /* the fields unt_\d_\d have already -myw:38- */
	},
	
	iframe_showHide : function(iframeId,stringOpen,stringClose) {
	  if (document.getElementById('div_'+iframeId).style.display=='none') {
			document.getElementById('a_'+iframeId).innerHTML = stringClose;
			jQuery(document.getElementById('div_'+iframeId)).animate({width:'show'},'medium', function() {
			  jQuery(document.getElementById(iframeId)).animate({height:'show'},'medium');
			});
	  } else {
			document.getElementById('a_'+iframeId).innerHTML = stringOpen;
			jQuery(document.getElementById(iframeId)).animate({height:'hide'},'medium', function() {
			  jQuery(document.getElementById('div_'+iframeId)).animate({width:'hide'},'medium');
			});
	  }
	},
	
	checkForm : function(f) {
		var errMsg = '';
		var SPANS = document.getElementsByTagName('span');
		for(var i=0;i<SPANS.length;i++) {
			if (SPANS[i].id.indexOf(f.name+'_')==0) {
				var A = SPANS[i].id.split('_');
				A = A.splice(3,A.length);
				var fieldName = A.join('_');
				if (f[fieldName]) {
					if (!f[fieldName].value) 
						errMsg += '- ' + SPANS[i].innerHTML + '<br/>\n'; 
				}
			}
		}
		errMsg != '' ?
			myw.dialog_alert(myw.frontend.lang,myw.lang.frontend.texts.fieldsEmpty + '<br/>\n' + errMsg) :
			myw.submitForm(f,document.frm_main);
	},
		
	getAnimationObj : function(animation,option) {
		var o = new Object();
		if (animation == 'random') {
			var A = new Array('opacity','width','height','width,height','opacity,width','opacity,height','opacity,width,height');
			var B = Math.random().toString().split('.');
			sId = B[1].toString();
			var aId;
			for(var i=0;i<sId.length;i++) {
				aId = parseInt(B[1].substring(i,i+1,B[1].length));
				if(aId < A.length) break;
			}
			o = myw.getAnimationObj(A[aId],option);
		} else {
			var A = new Array;
			A = animation.split(',');
			for(var i=0;i<A.length;i++) {
				if(A[i]) o[A[i]] = option;
			}
		}
		return o;
	},
	
	closeAndExpand : function(id,textNo,titleChoosen,titleNotChoosen,disposition,fadeIn,fadeOut) {
		myw.resetStyles('myw_tmpl_clsExpTit_',titleNotChoosen);
		var executed = 0;
		var DIVS = document.getElementsByTagName('div');
		for(var i=0;i<DIVS.length;i++) {
			if (DIVS[i].id.indexOf('myw_tmpl_clsExpTxt_'+id+'_')==0 && DIVS[i].style.display != 'none') {
				executed = 1;
				if (DIVS[i].id == 'myw_tmpl_clsExpTxt_'+id+'_'+textNo) {
					jQuery(DIVS[i]).animate(myw.getAnimationObj(fadeOut,'hide'),'medium');
					myw.setStyles('myw_tmpl_clsExpTit_'+id+'_'+textNo,titleNotChoosen);
				} else {
					if (disposition == 'successive') {
						jQuery(DIVS[i]).animate(myw.getAnimationObj(fadeOut,'hide'),'medium', function() {
							jQuery(document.getElementById('myw_tmpl_clsExpTxt_'+id+'_'+textNo)).animate(myw.getAnimationObj(fadeIn,'show'),'medium');
						});
					} else {
						jQuery(DIVS[i]).animate(myw.getAnimationObj(fadeOut,'hide'),'medium');
						jQuery(document.getElementById('myw_tmpl_clsExpTxt_'+id+'_'+textNo)).animate(myw.getAnimationObj(fadeIn,'show'),'medium');
					}
					myw.setStyles('myw_tmpl_clsExpTit_'+id+'_'+textNo,titleChoosen);
				}
				break;
			} 
		}
		if (executed == 0) {
			jQuery(document.getElementById('myw_tmpl_clsExpTxt_'+id+'_'+textNo)).animate(myw.getAnimationObj(fadeIn,'show'),'medium');
			myw.setStyles('myw_tmpl_clsExpTit_'+id+'_'+textNo,titleChoosen);
		}
	},
	
	resetStyles : function(baseElId,titleNotChoosen) {
		var SPANS = document.getElementsByTagName('span');
		for(var i=0;i<SPANS.length;i++) {
			if (SPANS[i].id.indexOf(baseElId)==0) {
				SPANS[i].removeAttribute("style");
				for(var o in titleNotChoosen)
					SPANS[i].style[o] = titleNotChoosen[o];
			}
		}
	},
	
	setStyles : function(elId,cssTitle) {
		document.getElementById(elId).removeAttribute("style");
		for(var o in cssTitle)
			document.getElementById(elId).style[o] = cssTitle[o];
	},
	
	createInputField : function(f,fieldName,fieldValue) {
		if (f[fieldName]) {
			f[fieldName].value=fieldValue;
		} else {
			var newInput = document.createElement('input');
			newInput.name = fieldName;
			newInput.type='hidden';
			newInput.value=fieldValue;
			f.appendChild(newInput);
		}
	},
	
	showHideLayer : function(div) {
		var d = document.getElementById(div);
		d.style.display != 'none' ?
			jQuery(d).animate({height:'hide'},'medium') :
			jQuery(d).animate({height:'show'},'medium');
		
	},
	
	getTimeId : function() {
		var today = new Date();
		return today.getTime();
	},
	
	history_setVars : function() {
		if (window.name == 'myLayer_content_iframe') {
			parent.myw.ajax.history_isback=1;
			parent.myw.ajax.history_step--;
		}
	},
	
	history_insert : function(string) {
		if (window.name=='myLayer_content_iframe') {
			 if ((parent.myw.ajax.history_step>0 && parent.myw.ajax.history_isback == 0) || (parent.myw.ajax.history_step>1 && parent.myw.ajax.history_isback==1))
			 	document.write(string);
			 if (!parent.myw.ajax.history_isback)
			 	parent.myw.ajax.history_step++;
			 parent.myw.ajax.history_isback = 0;
		}
	},
	
	getMousePosition : function(e) {
		if(myw.is_ie) {
			var o = myw.getWindowInfos();
			myw.mouse_x = event.clientX + o.scrollLeft;
			myw.mouse_y = event.clientY + o.scrollTop;
		} else {
			myw.mouse_x = e.pageX;
			myw.mouse_y = e.pageY;
		}
	},
	
	sendErrMsg : function() {
		var p = new Object();
		p.errMsg = document.getElementById('myw_div_error_message').innerHTML;
		p.errMsg_comment = document.getElementById('error_message_comment').value;
		p.errMsg_mailTo = document.getElementById('error_message_mailTo').value;
		p.errMsg_script = document.getElementById('error_message_script').value;
		p.errMsg_params = document.getElementById('myw_div_error_message_params').innerHTML;
		p.nh_captcha_id = document.getElementById('nh_captcha_id').value;
		p.nh_captcha_pointer = document.getElementById('nh_captcha_pointer').value;
		p.nh_captcha_security_code = document.getElementById('nh_captcha_security_code').value;
		myw.ajax.execute('post',myw.paths.website.cgi.net+'/bin/admin/sendError.pl',p,'myw_div_error_message_check','',1);
	},

	scrollObject_init : function(div) {
		var winInfos = myw.getWindowInfos();
		var d = document.getElementById(div);
		d.style.visibility = 'hidden';
		d.style.position = 'absolute';
		d.style.zIndex = 50;
		var l = winInfos.width - parseInt(d.style.width) - 50;
		d.style.left = l+'px';
		d.style.visibility = 'visible';
		myw.scrollObject_start(d);
	},
	
	scrollObject_start : function(d) {
		window.setInterval(function(){ 
			myw.scrollObject_execute(d); 
		},500);
	},
	
	scrollObject_execute : function(d) {     
    	var winInfos = myw.getWindowInfos();
  		var t = Math.round(((winInfos.height/2)-(parseInt(d.style.height)/2))+winInfos.scrollTop);
		if (winInfos.scrollTop != myw.scrollObj_topOld || myw.scrollObj_winHeightOld != winInfos.height) {
			var p;
			if (parseInt(d.style.top) < t) {
				t - parseInt(d.style.top) > 200 ?
					p = t - 200 :
					p = t;
			} else {
				parseInt(d.style.top) - t > 200 ?
					p = t + 200 :
					p = t;
			}
			myw.scrollObj_topOld = winInfos.scrollTop;
			myw.scrollObj_winHeightOld = winInfos.height;
			jQuery(d).stop();
	        jQuery(d).animate({top:p},'2000', function() {
	        	if (t != p) 
	        		jQuery(d).animate({top:t},1000);
	        });
	    }
    }
};

myw.lang = {	
	insertVars : function(string, VARS) {
		if (string) {
			VARS = VARS.reverse();
			for(var i=VARS.length-1;i>=0;i--) {
				var A = string.split('$'+i);
				string = A.join(VARS[i]);
			}
			return string;
		}
	}
};

myw.lang.frontend = {
	texts : new Object()
};

myw.lang.admin = {
	frontendTexts : new Object()
};

myw.frontend = {
	/* Set by perl in lib/myw/header.pm */
	lang : new String()
};

myw.paths = {
	website : new Object(),
	instance : new Object(),
	frontend : new Object()
};

myw.website = {
	windows : new Object()
};

myw.scripts = {
};

