// (C) Glimworm Information Technology BV 2008
firefly.MANIFEST = {version:'2009 09 30',lastUpdatedBy:'jc'};

firefly.SEO = new Object();
firefly.SEO.Forms = {
	sendFormByAjax: function(event) {
		s = "EVNT-TYPE=on-form-change&";
		s += $j("#"+event.data.formid).serialize();
		url = "evnt.jsp?SID="+Ses_SID+"&SESSIONID="+ses_sessionID+"&EVNT=WATCHFORM&"+s;
		$j.get(url,function(txt){ } );
	},
	sendFormByAjaxKeyup: function(event) {
		// keyup only fires on keyCode == 9 == (tab)
		if (event.keyCode == 9) {
			s = "EVNT-TYPE=on-keyup-tab&";
			s += $j("#"+event.data.formid).serialize();
			url = "evnt.jsp?SID="+Ses_SID+"&SESSIONID="+ses_sessionID+"&EVNT=WATCHFORM&"+s;
			$j.get(url,function(txt){ } );
		}
	},
	sendFormByAjaxClick: function(event) {
		// keyup only fires on click
		s = "EVNT-TYPE=on-click&";
		s += $j("#"+event.data.formid).serialize();
		url = "evnt.jsp?SID="+Ses_SID+"&SESSIONID="+ses_sessionID+"&EVNT=WATCHFORM&"+s;
		$j.get(url,function(txt){ } );
	},
	sendFormByAjaxSubmit: function(event) {
		// keyup only fires on submit
		s = "EVNT-TYPE=on-form-submit&";
		s += $j("#"+event.data.formid).serialize();
		url = "evnt.jsp?SID="+Ses_SID+"&SESSIONID="+ses_sessionID+"&EVNT=WATCHFORM&"+s;
		$j.get(url,function(txt){ } );
	},
	sendKeepAliveByAjax: function(event) {
		// keyup only fires on submit
		s = "EVNT-TYPE=page-keep-alive&";
		url = "evnt.jsp?SID="+Ses_SID+"&SESSIONID="+ses_sessionID+"&EVNT=KEEPALIVE&"+s;
		$j.get(url,function(txt){ } );
	},
	watchForm: function(formid) {
		$j("#"+formid).bind('change',{'formid' : formid}, firefly.SEO.Forms.sendFormByAjax);	
		$j("#"+formid).bind('keyup',{'formid' : formid}, firefly.SEO.Forms.sendFormByAjaxKeyup);	
		$j("#"+formid).bind('click',{'formid' : formid}, firefly.SEO.Forms.sendFormByAjaxClick);	
		$j("#"+formid).bind('submit',{'formid' : formid}, firefly.SEO.Forms.sendFormByAjaxSubmit);	
	},
	heartBeat: function(snd) {
		if (snd) firefly.SEO.Forms.sendKeepAliveByAjax();
		var howLong = (5*60*1000); 	// 5 mins
		setTimeout("firefly.SEO.Forms.heartBeat(true);",howLong); // 5 mins
	}
};

firefly.SCRIPT = new Object();
firefly.SCRIPT.formUtils = {
	formdata : "",
	formid : "",
	setForm: function (_formid) {
		this.formid = _formid;
	},
	store: function(_formid) {
		this.formdata = $j("#"+_formid).serialize();
	},
	json: function(_formid) {
		return $j("#"+_formid).serializeArray();
	},
	string: function(_formid) {
		return $j("#"+_formid).serialize();
	},
	gwSendMail1_get: function(_formid) {
		var _data = $j("#"+_formid).serialize();
		var rdata = { 'status':2};
		var txt = $j.ajax({
			type: "GET", async: false, cache: false,
			url: "gwSendMail1.jsp?_FORMAT=json&"+_data,
			complete : function() { },
			success : function(data, textStatus) {
				rdata.status = 0;
				rdata.textStatus = textStatus;
				rdata.data = data;
			},
			error : function(XMLHttpRequest, textStatus, errorThrown) {
				rdata.status = 1;
				rdata.textStatus = textStatus;
				rdata.errorMessage = errorThrown;
			},
			dataType: "json"
		}).responseText;	
		return rdata;
	},
	gwSendMail1_post: function(_formid) {
		var _data = $j("#"+_formid).serializeArray();
		var rdata = { 'status':2};
		var txt = $j.ajax({
			type: "POST", async: false, cache: false,
			url: "gwSendMail1.jsp?_FORMAT=json",
			data: _data,
			complete : function() { },
			success : function(data, textStatus) {
				rdata.status = 0;
				rdata.textStatus = textStatus;
				rdata.data = data;
			},
			error : function(XMLHttpRequest, textStatus, errorThrown) {
				rdata.status = 1;
				rdata.textStatus = textStatus;
				rdata.errorMessage = errorThrown;
			},
			dataType: "json"
		}).responseText;	
		return rdata;
	},
	api_get: function(chunk, _data) {
		var rdata = { 'status':2};
		var txt = $j.ajax({
			type: "GET", async: false, cache: false,
			url: "ext_chunk.jsp?chunk="+chunk+"&"+_data,
			complete : function() { },
			success : function(data, textStatus) {
				rdata.status = 0;
				rdata.textStatus = textStatus;
				rdata.data = data;
			},
			error : function(XMLHttpRequest, textStatus, errorThrown) {
				rdata.status = 1;
				rdata.textStatus = textStatus;
				rdata.errorMessage = errorThrown;
			},
			dataType: "json"
		}).responseText;	
		return rdata;
	},
	api_post: function(chunk, _data) {
		var rdata = { 'status':2};
		var txt = $j.ajax({
			type: "POST", async: false, cache: false,
			url: "ext_chunk.jsp?chunk="+chunk,
			data: _data,
			complete : function() { },
			success : function(data, textStatus) {
				rdata.status = 0;
				rdata.textStatus = textStatus;
				rdata.data = data;
			},
			error : function(XMLHttpRequest, textStatus, errorThrown) {
				rdata.status = 1;
				rdata.textStatus = textStatus;
				rdata.errorMessage = errorThrown;
			},
			dataType: "json"
		}).responseText;
		return rdata;
	},
	api_getuniqueformid: function() {
		var rdata = { 'status':2};
		var txt = $j.ajax({
			type: "POST", async: false, cache: false,
			url: "api-getufid-v5.jsp",
			data: {},
			complete : function() { },
			success : function(data, textStatus) {
				rdata.status = 0;
				rdata.textStatus = textStatus;
				rdata.data = data;
			},
			error : function(XMLHttpRequest, textStatus, errorThrown) {
				rdata.status = 1;
				rdata.textStatus = textStatus;
				rdata.errorMessage = errorThrown;
			},
			dataType: "json"
		}).responseText;
		return rdata;
	},
	get: function(URL,DATA) {
		return this.getpost(URL,DATA,"GET","json");
	},
	post: function(URL,DATA) {
		return this.getpost(URL,DATA,"POST","json");
	},
	gettext: function(URL,DATA) {
		return this.getpost(URL,DATA,"GET","text");
	},
	posttext: function(URL,DATA) {
		return this.getpost(URL,DATA,"POST","text");
	},
	getscript: function(URL,DATA) {
		return this.getpost(URL,DATA,"GET","script");
	},
	postscript: function(URL,DATA) {
		return this.getpost(URL,DATA,"POST","script");
	},
	getxml: function(URL,DATA) {
		return this.getpost(URL,DATA,"GET","xml");
	},
	postxml: function(URL,DATA) {
		return this.getpost(URL,DATA,"POST","xml");
	},
	getpost: function(URL,DATA,METHOD,TYPE) {
		var rdata = { 'status':2};
		var txt = $j.ajax({
			type: METHOD, async: false, cache: false,
			url: URL,
			data: DATA,
			complete : function() { },
			success : function(data, textStatus) {
				rdata.status = 0;
				rdata.textStatus = textStatus;
				rdata.data = data;
			},
			error : function(XMLHttpRequest, textStatus, errorThrown) {
				rdata.status = 1;
				rdata.textStatus = textStatus;
				rdata.errorMessage = errorThrown;
			},
			dataType: TYPE
		}).responseText;
		return rdata;
	}	
};

firefly.api5 = new Object();

firefly.helper = new Object();
firefly.helper.rollover = function(ev) {
	var obj = ev.target;
	console.log("roll over");
	console.log(obj);
	if (obj) {
		var src = $j(obj).attr('src');
		src = src.replace(/\_on/g, "_over")
		$j(obj).attr('src',src);
		console.log("new src["+src+"]");
	}
};
firefly.helper.rollout = function(ev) {
	var obj = ev.target;
	console.log("roll out");
	console.log(obj);
	if (obj) {
		var src = $j(obj).attr('src');
		src = src.replace(/\_over/g, "_on")
		$j(obj).attr('src',src);
		console.log("new src["+src+"]");
	}
};

/**
 *	firefly.helper.addRollverScript(image object)
 *
 *		$j('#sidemenu img').each(function (i) {
 *			firefly.helper.addRollverScript(this);
 *		});
 *
 **/
firefly.helper.addRollverScript = function(obj) {
	if (obj) {
		$j(obj).bind('mouseenter', function(e) { firefly.helper.rollover(e);} );
		$j(obj).bind('mouseleave', function(e) { firefly.helper.rollout(e);} );
	}
};

/**
 *	firefly.helper.addLightBox(String)
 *
 * 	S = 'frontpage' converted to 
 *		'#frontpage a'
 * 		<div id='frontpage'><a id='1' href='/src'><img src='/src' width='10' height='10' alt='1' /></a></div>
 **/
firefly.helper.addLightBox = function(S) {
	$j("#"+S+" a").lightBox({fixedNavigation:true,
		imageLoading: '/_assets/moock/jquery.plugins/images/lightbox-ico-loading.gif',
		imageBtnClose: '/_assets/moock/jquery.plugins/images/lightbox-btn-close.gif',
		imageBtnPrev: '/_assets/moock/jquery.plugins/images/lightbox-btn-prev.gif',
		imageBtnNext: '/_assets/moock/jquery.plugins/images/lightbox-btn-next.gif'});
};

firefly.js = {
	loadedArray : new Array(),
	put: function(S) {
        this.loadedArray.push( {filename:S} );
	},
	isLoaded: function(S) {
		for (i=0; i < this.loadedArray.length; i++) { 
			if (this.loadedArray[i].filename == S) return true;
		}
		return false;
	},
	load: function (S) {
		if (!isLoaded(S)) {
			this.put(S);
			$j.getScript(S , function() {});
		}
	}
};


/**
 *	firefly.fx.reloadCSS()
 *
 * 		force reload of css
 *
 **/
firefly.fx = {};
firefly.fx.timedSlideShow = function(dv,arr) {
	this.dv = dv || "";
	this.arr = arr || new Array();
	this.idx = 0;
	this.nextslide();
};
firefly.fx.timedSlideShow.prototype.nextslide = function() {
	try {
		this.idx++;
		if (this.idx >= this.arr.length) this.idx = 0;
		this.showslide();
	} catch (e) {
		console.log(e);
	}
}
firefly.fx.timedSlideShow.prototype.showslide = function() {
	$j("#"+this.dv).html("<img src='"+this.arr[this.idx][0]+"'>");
	$j("#"+this.dv).hide();
	$j("#"+this.dv).fadeIn('slow');
	var _this = this;
	setTimeout(function() { _this.nextslide(); }, 5000);
};


/**
 *	firefly.css.reloadCSS()
 *
 * 		force reload of css
 *
 **/
firefly.css = {
	reloadCSS: function(S) {
		try {document.createStyleSheet(S);} catch(e) {};
	}
};
