var debugWindow = null;
var debugEnabled = 1;  //TODO set to 0 after debugging
var debugPopupEnabled = 1;  //TODO set to 0 after debugging

function ajax_request(url, data, processor) {
    var myAjax = new Ajax.Request(url,{method: 'post', parameters: data, onComplete: processor});
}

function evalJson(json){
	return eval('(' + json + ')');
}

// debug logging
var DumperIndent = 1;var DumperIndentText = " ";var DumperNewline = "\n";var DumperObject = null;var DumperMaxDepth = -1;var DumperIgnoreStandardObjects = true;var DumperProperties = null;var DumperTagProperties = new Object();
function DumperGetArgs(a,index){var args = new Array();for(var i=index;i<a.length;i++){args[args.length] = a[i];}return args;}
function DumperPad(len){var ret = "";for(var i=0;i<len;i++){ret += DumperIndentText;}return ret;}
function Dumper(o){var level = 1;var indentLevel = DumperIndent;var ret = "";if(arguments.length>1 && typeof(arguments[1])=="number"){level = arguments[1];indentLevel = arguments[2];if(o == DumperObject){return "[original object]";}}else{DumperObject = o;if(arguments.length>1){var list = arguments;var listIndex = 1;if(typeof(arguments[1])=="object"){list = arguments[1];listIndex = 0;}for(var i=listIndex;i<list.length;i++){if(DumperProperties == null){DumperProperties = new Object();}DumperProperties[list[i]]=1;}}}if(DumperMaxDepth != -1 && level > DumperMaxDepth){return "...";}if(DumperIgnoreStandardObjects){if(o==window || o==window.document){return "[Ignored Object]";}}if(o==null){ret = "[null]";return ret;}if(typeof(o)=="function"){ret = "[function]";return ret;}if(typeof(o)=="boolean"){ret =(o)?"true":"false";return ret;}if(typeof(o)=="string"){ret = "'" + o + "'";return ret;}if(typeof(o)=="number"){ret = o;return ret;}if(typeof(o)=="object"){if(typeof(o.length)=="number"){ret = "[";for(var i=0;i<o.length;i++){if(i>0){ret += "," + DumperNewline + DumperPad(indentLevel);}else{ret += DumperNewline + DumperPad(indentLevel);}ret += Dumper(o[i],level+1,indentLevel-0+DumperIndent);}if(i > 0){ret += DumperNewline + DumperPad(indentLevel-DumperIndent);}ret += "]";return ret;}else{ret = "{";var count = 0;for(i in o){if(o==DumperObject && DumperProperties!=null && DumperProperties[i]!=1){}else{if(typeof(o[i]) != "unknown"){var processAttribute = true;if(typeof(o.tagName)!="undefined"){if(typeof(DumperTagProperties[o.tagName])!="undefined"){processAttribute = false;for(var p=0;p<DumperTagProperties[o.tagName].length;p++){if(DumperTagProperties[o.tagName][p]==i){processAttribute = true;break;}}}}if(processAttribute){if(count++>0){ret += "," + DumperNewline + DumperPad(indentLevel);}else{ret += DumperNewline + DumperPad(indentLevel);}ret += "'" + i + "' => " + Dumper(o[i],level+1,indentLevel-0+i.length+6+DumperIndent);}}}}if(count > 0){ret += DumperNewline + DumperPad(indentLevel-DumperIndent);}ret += "}";return ret;}}}

function debugOut(text){
	if (typeof(debugEnabled) != "undefined" && debugEnabled == 1){
		var cT = new Date();
		cT = cT.getHours() + ':' + cT.getMinutes() + ':' + cT.getSeconds() + ' ';
		if (typeof(console) == "object" && typeof(console.log) != "undefined"){
			console.log(cT + text); //this for FireBug
		}else{
			if (debugPopupEnabled == 1){
				try { //this for others
					if(typeof(text) == 'function' || typeof(text) == 'number'){
						text = text.toString();
					}
					if (typeof(text) == 'object'){
						text = Dumper(text);
					}
					if (typeof(debugWindow) == 'undefined' || debugWindow == null || debugWindow.closed == true) {
						debugWindow = window.open('', 'CMS_debug', 'width=400,height=300,scrollbars=1,resizable,status');
						debugWindow.document.open();
						debugWindow.document.write('<html><head><title>Debug output</title></head><body><h4>Debug output</h4><div id="debugTag"></div></body></html>');
					}
					text = text.replace(/&/g, "&amp;")
					text = text.replace(/</g, "&lt;")
					text = text.replace(/>/g, "&gt;")
					text = text.replace(/"/g, "&quot;")
					text = text.replace(/'/g, "&#39;")
					debugTag = debugWindow.document.getElementById('debugTag');
					debugTag.innerHTML = ('<pre>' + cT + text +  '<hr/>') + debugTag.innerHTML;
				} catch (e) {
					alert("Debug:\n " + text); //in case of all debug windows fails, just alert
				}
			}
		}
	}
}

/*
function ajax_response(originalRequest) {
    if(!bHasRedirect) {
        //process originalRequest.responseText;
    } else {
        bHasRedirect = false;
        ajax_request(originalRequest.responseText, "");
    }
}
*/

function showPopupWindow(url, title, parameters, isimage, base){
	//debugOut('popupWindow');
	
	if (isimage == '1'){
		base = base.substr(0,base.lastIndexOf('/'));
		url = base + '/popup.html?src=' + url + '&title=' + title;
		debugOut(url);
	}
	debugOut(url);
	//debugOut(parameters);
	PopupWindow = window.open(url, '', parameters);
}

function validateIsFieldEmpty(field) {
	if ($F(field) == "") {
		$(field).focus();
		return true;
	}
	return false;
}

function validateIsFieldEmail(field) {
	if (!/[a-zA-Z0-9._-]+@[a-zA-Z0-9.-]+\.[a-zA-Z0-9.-]{2,4}$/.test($F(field))) {
		$(field).focus();
		return true;
	}
	return false;
}

function showLegal(){
	var sel = $("legal").value;
	switch(sel)
	{
		case '1' :
				 $("tr_legal_name").style.display="";
				 $("tr_legal_address").style.display="";	
				 $("tr_legal_reg_nr").style.display="";
				 $("tr_legal_city").style.display="";
				 $("tr_legal_zip").style.display="";			
		break;
		case '0' :
				 $("tr_legal_name").style.display="none";
				 $("tr_legal_address").style.display="none";	
				 $("tr_legal_reg_nr").style.display="none";
				 $("tr_legal_city").style.display="none";
				 $("tr_legal_zip").style.display="none";		
		
		break;
		
	}
	
}
