<!--

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 toggleListingDetails(elementId, hideTextId, showTextId, cookie)
{
	toggleObject = dojo.byId(elementId);
	if('none' == toggleObject.style.display) {
		hide(hideTextId);
		show(showTextId);
		show(elementId);
	} else {
		hide(hideTextId);
		show(showTextId);
		hide(elementId);
	}
	Misc.runAjaxByGet('/feedback/set-cookie/cookie/'+cookie+'/', 'setCookie');
}

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 runAjaxByGet(url, targetDivId)
{
	var targetDivNode = dojo.byId(targetDivId);
	if(!targetDivNode) {
		// search for standard targetDivNode
		targetDivId = 'listTableContent';
		targetDivNode = dojo.byId('listTableContent');
	}
	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/";

	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 getCookie(c_name)
{
	if (document.cookie.length>0) {
		c_start=document.cookie.indexOf(c_name + "=");
		if (c_start!=-1) {
			c_start=c_start + c_name.length+1;
			c_end=document.cookie.indexOf(";",c_start);
			if (c_end==-1) c_end=document.cookie.length;
			return unescape(document.cookie.substring(c_start,c_end));
		}
	}
	return "";
}	

function setCookie(c_name,value,expiredays)
{
	var exdate=new Date();
	exdate.setDate(exdate.getDate()+expiredays);
	document.cookie=c_name+ "=" +escape(value)+
	((expiredays==null) ? "" : ";expires="+exdate.toUTCString());
}

function deleteCookie(cookie_name)
{
  var cookie_date = new Date ( );  // current date & time
  cookie_date.setTime ( cookie_date.getTime() - 1 );
  document.cookie = cookie_name += "=; expires=" + cookie_date.toGMTString();
}

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;
		});
	}
}


var Dialog = {
    dialog: null,
    element: null,
    init: function(title,w,h) {
	dojo.require("dijit.Dialog");
	if(dijit.byId('popupDialogBox')) {    
	    dojo.destroy("popupDialogBox");
	    this.dialog = dijit.byId('popupDialogBox');        
	    this.dialog.destroyRecursive();   
	}
	this.dialog = new dijit.Dialog({id : 'popupDialogBox',title : title});
	this.dialog.resize({w:w,h:h});
    },
    addToListingActionButtonLink: function(element) {
	Dialog.element = element;
	dojo.query("a").forEach(function(linkNode, index){
	    //console.log(linkNode.innerHTML + ' ' + Dialog.element.url);
	    if(linkNode.innerHTML == Dialog.element.text && linkNode.href.search(Dialog.element.url) >= 0) {
		linkNode.onclick = "Dialog.showInIframe('"+Dialog.element.text+"','"+Dialog.element.url+"','"+Dialog.element.w+"','"+Dialog.element.h+"'); return false;";
		dojo.attr(linkNode, 'onclick', "Dialog.showInIframe('"+Dialog.element.text+"','"+Dialog.element.url+"','"+Dialog.element.w+"','"+Dialog.element.h+"'); return false;");
		dojo.attr(linkNode, 'href', "javascript:Dialog.showInIframe('"+Dialog.element.text+"','"+Dialog.element.url+"','"+Dialog.element.w+"','"+Dialog.element.h+"');");
	    };
	});
    },
    show: function(title,url,w,h){
	Dialog.init(title,w,h);
	this.dialog.attr('href',url);
	Dialog.display();
    },
    
    /*
     *	showInIframe
     *	if width or height are 0 dialog will be sized after the window
     */
    showInIframe: function(title,url,w,h)
    {
	w = parseInt(w);
	h = parseInt(h);
	
	if(w == 0 && h == 0){
	    var ws = dojo.window.getBox();
	    if(ws.w > 1000){
		w = 985;
	    }else{
		w = ws.w - 30;
	    }   
	    h = ws.h - 40;
	}
	
	Dialog.init(title,w,h);
	w = w-30; 
	h = h-30; 
	this.dialog.attr('content','<iframe id = "iframePopup" src="'+url+'/frompopup/1" style="border:none; width:'+w+'px; height:'+h+'px" marginheight="0" marginwidth="0" frameborder="0" frameborder="0" onLoad="Dialog.resizeIframe(\'iframePopup\');"></iframe>');
	Dialog.display();
    },
    
    display: function(){
	this.dialog.show();
	this.dialog._position = function(){};
    },
    
    resizeIframe:function(id){
	var iframe = dojo.byId(id);
	var newheight = iframe.contentWindow.document.body.scrollHeight;
	newheight+=50;
	dojo.style(iframe,'height',(newheight) + "px");
    }
};
//-->
