<!--

function toggle(eId)
{
	if('object'==typeof(eId))
	{
		for(i in eId)
		{
			
			toggle(eId[i]);
		}
		return;		
	}

	oe=dojo.byId(eId);
	if(!oe) {
		console.warn('Toggle Error: '+eId+' could not be found');
		return;
	}
	if('none'==oe.style.display)
	{
		show(eId);
	}
	else
	{
		hide(eId);
	}
}

function toggleConvertText(elementId, hideTextId, showTextId)
{
	toggleObject = dojo.byId(elementId);
	if('none' == toggleObject.style.display) {
		hide(hideTextId);
		show(showTextId);
		show(elementId);
	} else {
		hide(hideTextId);
		show(showTextId);
		hide(elementId);
	}
}
		
function show(eId)
{
	if('object'==typeof(eId))
	{
		for(i in eId)
		{
			
			show(eId[i]);
		}
		return;		
	}
	oe = dojo.byId(eId);
	if(!oe) {
		console.warn('Show Error: '+eId+' could not be found');
		return;
	}
	oe.style.display='';
}

function hide(eId)
{
	if('object'==typeof(eId))
	{
		for(i in eId)
		{
			hide(eId[i]);
		}
		return;		
	}
	oe = dojo.byId(eId);
	if(!oe) {
		console.warn('Hide Error: '+eId+' could not be found');
		return;
	}
	oe.style.display='none';
}

function popup(link, width, height, specs)
{
	if (! window.focus) return true;

	var href=(typeof(link)=='string')?link:link.href; 
	specs=(typeof(specs)=='undefined')?'scrollbars=no':specs;
	
	window.open(href, '_blank','width='+width+',height='+height+','+specs);
	return false;
}

function gotoFormToSlashQuery(form)
{
	var _d=dojo.formToObject(form);
	var _l = form.action;
	_l.replace(/\/$/,'');
	
	var _e=escape;
	var _f=[];
	for(var _11 in _d) {
		var _12=_d[_11];
		_f.push(_e(_11)+"/"+_e(_12));
	}
	window.location=_l+"/"+_f.join("/");
}

//onerror=mainErrorHandler;

function mainErrorHandler(msg,url,line)
{
	console.log(url+' (line: '+line+') - '+msg);
	alert("Internal Error occured, please contact support if this problem continues.\r\nSorry for the inconvience this may be causing you.");
	return true;
}

function getElementParent(element, parentTagName)
{
	if(element.domNode) {
		element = element.domNode;		
	}
	var element = element.parentNode;
	while(parentTagName != element.tagName) {
		element=element.parentNode;
		if(element == null) return null;
	}
	return element;
}

function getForm(element)
{
	return getElementParent(element,'FORM')
}

function copy2clipboard(text2copy) {
	if (window.clipboardData) {
		window.clipboardData.setData("Text",text2copy);
	} else {
		alert("We're sorry but this feature is only available in Internet Explorer");
	}
}

function onAjaxRequestComplete(response)
{
	parseAjaxResponseForWidgets(response);
	dojo.forEach(ajaxResponseZendDijits, function(info) {
        var n = dojo.byId(info.id);
		//console.log(info)
		if (null != n) {
			dojo.attr(n, dojo.mixin({ id: info.id }, info.params));
        }
    });
	ajaxResponseZendDijits = new Array();
    
}

function parseHtmlForWidgets(htmlResponse)
{
	var contentDiv = dojo.create('DIV', {'innerHTML': htmlResponse});
	dojo.query("form",contentDiv).forEach( function(elem){
		if (/msie/i.test (navigator.userAgent)) {
			/* Handle separatelly this case @TODO (error is generated here, possibly because the form contains element with name = 'id'  ) */ 

		} else {
			elem.setAttribute('dojoType','dijit.form.Form');
		}
	}
	); 
	dojo.query("[type=button]",contentDiv).forEach( function(elem){
		elem.setAttribute('dojoType','dijit.form.Button');
	}
	); 
	dojo.query(".tooltip",contentDiv).forEach( function(elem){
		elem.setAttribute('dojoType','dijit.Tooltip');
		if(elem.getAttribute('id')) {
			var connectIdParam = elem.getAttribute('id').match(/digit_tooltip_(.*)/i)
			if(connectIdParam[1])
				elem.setAttribute('connectid',connectIdParam[1]);
		}
	}
	); 
	dojo.query('input[type=radio]',contentDiv).forEach( function(elem){
		elem.setAttribute('dojoType','dijit.form.RadioButton');
	}
	);
	return contentDiv.innerHTML;
}

function parseAjaxResponseForWidgets(htmlResponse)
{
	var contentDiv = document.createElement("div");
	contentDiv . innerHTML = htmlResponse;
	var elems = contentDiv.getElementsByTagName("*");
	var dijitType = null;
	ajaxResponseZendDijits = new Array();
	for(var i=0, maxI = elems.length; i< maxI; ++i) {
		dijitType = null;
		if(elems[i].tagName == "FORM") {
		    dijitType ="dijit.form.Form";		    
		    if(!existsZendDijit(elems[i].getAttribute("id")))
		    	ajaxResponseZendDijits.push({"id":elems[i].getAttribute("id"), "params":{"dojoType":dijitType}});
		} else if(elems[i].type=='button') {
			dijitType ="dijit.form.Button";
			if(!existsZendDijit(elems[i].getAttribute("id")))
				ajaxResponseZendDijits.push({"id":elems[i].getAttribute("id"), "params":{"dojoType":dijitType}});
		} else if(elems[i].className == "tooltip") {
		    dijitType ="dijit.Tooltip";
			// get conect property
			var connectIdParam = elems[i].getAttribute("id").match(/digit_tooltip_(.*)/i)
			if(!existsZendDijit(elems[i].getAttribute("id")))
				ajaxResponseZendDijits.push({"id":elems[i].getAttribute("id"), "params":{"dojoType":dijitType, "connectId":connectIdParam}});
		} else if(elems[i].type=='radio') {			
			dijitType ="dijit.form.RadioButton";
			if(!existsZendDijit(elems[i].getAttribute("id")))
				ajaxResponseZendDijits.push({"id":elems[i].getAttribute("id"), "params":{"dojoType":dijitType}});
		}	
	}
}

function paginationListTablePageRequest(url, page, targetDivId)
{
	var targetDivNode = dojo.byId(targetDivId);
	var widgetTargetDivNode = dijit.byId(targetDivId);
	
	if(!widgetTargetDivNode) {
		widgetTargetDivNode = new dijit.layout.ContentPane({}, targetDivId);
	} 
	dojo.query(".loadingOverlay").orphan();
	var loadingDiv = dojo.create('DIV', {'class': 'loadingOverlay', 'innerHTML': 'Loading...'}, targetDivId, 'first');
	
	if(url.lastIndexOf("partial") == -1) url += "partial/1/";
	if(url.lastIndexOf('page') == -1)
		url += "page/" + page + "/"
	if(url.lastIndexOf('ajax') == -1)
		url += "ajax/1/"
	
	dojo.xhrGet({
	 url: url,
     handleAs: "text",
     load: function(response){
			widgetTargetDivNode.attr('content', parseHtmlForWidgets(response));
     	},
 	error: function(error){
        	dojo.query(".loadingOverlay").orphan();
        	var errorDiv = dojo.create('DIV', {'class': 'loadingOverlay', 'innerHTML': 'Error processing search request.'}, targetDivId, 'first');
        	console.log(error);
        }
     });
}

function existsZendDijit(newDijitId) 
{
	for(obj in zendDijits) {
		if(zendDijits[obj].id == newDijitId)
			return true;
	}
	
	return false;
}


function reloadFCKEditor(formContainerId)
{
	// reaload the fckeditor for IE7
	if((document.all)&&(navigator.appVersion.indexOf('MSIE 7.')!=-1)) {
		dojo.query('iframe', formContainerId).forEach(function(node, index, arr){
			var src = node.src;
			node.src = "";
			node.src = src;
		});
	}
}

//-->