var ie = navigator.userAgent.indexOf('MSIE ') != -1;
nextId=0;
intervalCheckup = 0;
intervalCheckupPayment = 0;

function reloadImages() {
	var now = new Date();
	var i = 0;
	$("img").each(function() {
		if(typeof this.onload == "undefined") {
			var src = this.src.split("?");
			this.src = src[0]+"?"+now.getTime();
		}
	});
	
	return false;
};


function newWindow(link, width, height) {
	var winX = (screen.availWidth - width) / 2;
	var winY = (screen.availHeight - height) / 2;
	var popWin = window.open(link,'NewWindow','left='+winX+',top='+winY+',scrollbars=yes,width='+width+',height='+height);
	
	if (popWin) {
		popWin.focus();
	}
	
	return false;
};


function debugValue(str) {
	debugElm = document.getElementById('debugElm');
	if(!debugElm) {
		var debugElm = document.createElement("input");
		document.body.appendChild(debugElm);
		debugElm.id = "debugElm";
	}
	
	debugElm.value = str;
};

function getScrollPos() {
	var scrollPos = {x:0,y:0};
	if (typeof window.pageYOffset != 'undefined') {
		scrollPos.x = window.pageXOffset;
		scrollPos.y = window.pageYOffset;
	} else if (typeof document.compatMode != 'undefined' && document.compatMode != 'BackCompat') {
		scrollPos.x = document.documentElement.scrollLeft;
		scrollPos.y = document.documentElement.scrollTop;
	} else if (typeof document.body != 'undefined') {
		scrollPos.x = document.body.scrollLeft;
		scrollPos.y = document.body.scrollTop;
	}
	
	return scrollPos;
};

function mkSlideshowgenerator(elm) {
	LINK = elm.href;
	
	var al = new Ajaxloader("/index.php?getcontent=1");
	al.start();
	al.onFinish("document.getElementById('ttform').innerHTML=returncontent;jscolor.init();");
	
	var form = document.createElement("div");
	form.id = "ttform";
	form.innerHTML = "loading...";
	
	var popup = new Popup(form);
	popup.divWidth = "400px";
	popup.show();
	addScript("/src/js/plugins/jscolor/jscolor.js");
	
	return false;
};

function g(elmid) {
	return document.getElementById(elmid).value;
};

function geniframe() {
	var srcstr = '<iframe src="'+LINK+'?width='+g('if_width')+'&amp;height='+g('if_height')+'&amp;slidekind='+g('if_type')+'&amp;bgcolor='+g('if_background')+'" scrolling="no" width="'+g('if_width')+'" height="'+g('if_height')+'" frameborder="0"></iframe>';
	
	var textarea = document.getElementById("if_copy");
	textarea.style.display = 'block';
	textarea.value = srcstr;
	textarea.select();
};

function addScript (url, charset, callback) {
	var js = document.createElement("script"); 
    if (charset) js.charset = charset;
    js.type = "text/javascript"; 
    js.src = url; 
    if (callback) js.onload = js.onreadystatechange = callback;
    var head = document.getElementsByTagName('head')[0];
    head.insertBefore(js, head.firstChild);
};

function addStyle (style) {
	var css = document.createElement("style");
    //css.type = "text/javascript"; 
	css.innerHTML = style;
    var head = document.getElementsByTagName('head')[0];
    head.insertBefore(css, head.firstChild);
};

function newId() {
	nextId++;
	return "dynId"+nextId;
};

function setPlan(planId, name, monthprice, yearprice, level) {
	document.getElementById('planname').innerHTML = name;
	document.getElementById('month').innerHTML = monthprice;
	document.getElementById('year').innerHTML = yearprice;
	document.getElementById('planid').value = planId;
	document.getElementById('level').value = level;
};

function fakeForm(fakeFormEle, checkSubdomain, button) { // set checkSubdomain == null if no checkup
	if(checkForm(fakeFormEle, 'actionField')) {
		if(document.getElementById('fakeformfield')) {
			document.body.removeChild(document.getElementById('fakeformfield'));
		}
		var form = document.createElement("form");
		form.id = "fakeformfield";
		form.action = fakeFormEle.getAttribute("action");
		form.method = fakeFormEle.getAttribute("method");
		
		var inputs = fakeFormEle.getElementsByTagName("input");
		var textareas = fakeFormEle.getElementsByTagName("textarea");
		var selects = fakeFormEle.getElementsByTagName("select");
		
		for(var i=0,n=inputs.length;i<n;i++) {
			if(inputs[i].name && !inputs[i].getAttribute("fakeformhidden")) {
				if(navigator.userAgent.indexOf('MSIE ') == -1) {
					var input = document.createElement("input");
					FORM_ERROR_AGB
					if(inputs[i].type == "checkbox" || inputs[i].type == "radio") {
						if(inputs[i].checked) {
							input.name = inputs[i].name;
							input.value = inputs[i].value;
						}
					} else {
						input.name = inputs[i].name;
						input.value = inputs[i].value;
					}
				} else {
					if(inputs[i].type == "checkbox" || inputs[i].type == "radio") {
						if(inputs[i].checked) {
							var input = document.createElement("<input type='text' name='"+inputs[i].name+"' value='"+inputs[i].value+"'>");
						}
					} else {
						var input = document.createElement('<input type="text" name=\''+inputs[i].name+'\' value="'+inputs[i].value+'">');
					}
				}
				
				form.appendChild(input);
			}
		}
		for(var i=0,n=textareas.length;i<n;i++) {
			if(navigator.userAgent.indexOf('MSIE ') == -1) {
				var input = document.createElement("input");
				input.name = textareas[i].name;
				input.value = textareas[i].value;
			} else {
				var input = document.createElement("<input type='text' name='"+textareas[i].name+"' value='"+textareas[i].value+"'>");
			}
			
			form.appendChild(input);
		}
		
		for(var i=0,n=selects.length;i<n;i++) {
			if(!selects[i].getAttribute("fakeformhidden")) {
				if(navigator.userAgent.indexOf('MSIE ') == -1) {
					var input = document.createElement("input");
					input.name = selects[i].name;
					input.value = selects[i].value;
				} else {
					var input = document.createElement("<input type='text' name='"+selects[i].name+"' value='"+selects[i].value+"'>");
				}
				form.appendChild(input);
			}
		}
		
		form.style.display = "none";
		document.body.appendChild(form);
		
		if(checkSubdomain) {
			checkDynSubdomain(button, checkSubdomain, null);
		} else {
			if(submitscript == null) {
				form.submit();
			} else {
				if(button) button.disabled = true;
				doPayment(submitscript, button, form);
			}
		}
	}
};

var lastcheckup = "";
function checkDynSubdomain(button, checkSubdomain, realtimecheck) {
	if(!realtimecheck || (lastcheckup != checkSubdomain.value && checkSubdomain.value != "")) {
		if(button) button.disabled = true;

		if(document.getElementById('waiter')) {
			var waiter = document.getElementById('waiter');
		} else {
			var waiter = document.createElement("input");
			waiter.type = "hidden";
			waiter.id = 'waiter';
			document.body.appendChild(waiter);
		}
		waiter.value = "";
		if(intervalCheckup != 0) clearInterval(intervalCheckup);
		
		intervalCheckup = window.setInterval(function() { 
			if(waiter.value != "") {
				clearInterval(intervalCheckup);
				intervalCheckup = 0;
				if(waiter.value == "true") {
					if(realtimecheck) {
						if(document.getElementById('submessage')) {
							var message = document.getElementById('submessage');
							message.innerHTML = trans.FORM_ERROR_SUBDOMAIN;
						} else {
							var message = document.createElement("div");
							message.id = "submessage";
							message.className = "subdomainerror";
							message.innerHTML = trans.FORM_ERROR_SUBDOMAIN;
						}
						message.style.display = 'block';
						checkSubdomain.parentNode.appendChild(message);
					}

					checkSubdomain.className = 'errorInput';
					checkSubdomain.onchange = function() { this.className = ''; if(document.getElementById('submessage')) { document.getElementById('submessage').style.display = 'none'} };

					if(!realtimecheck) alert(trans.FORM_ERROR_MESSAGE+"\n\n"+trans.FORM_ERROR_SUBDOMAIN);
					if(button) button.disabled = false;
				} else {
					if(button) button.disabled = false;
					if(submitscript == null) {
						if(!realtimecheck) document.getElementById("fakeformfield").submit();
					} else {
						if(button) button.disabled = true;
						doPayment(submitscript, button, document.getElementById("fakeformfield"));
					}
				}
			} 
		}, 500);
		
		
		lastcheckup = checkSubdomain.value;
		getAjaxUrl("/checksubdomain/"+checkSubdomain.value+".sub");
	}
};

function checkDomain(button, checkDomain, realtimecheck) {
	if(button) button.disabled = true;

	if(document.getElementById('waiter')) {
		var waiter = document.getElementById('waiter');
	} else {
		var waiter = document.createElement("input");
		waiter.type = "hidden";
		waiter.id = 'waiter';
		document.body.appendChild(waiter);
	}
	waiter.value = "";
	if(intervalCheckup != 0) clearInterval(intervalCheckup);
	
	intervalCheckup = window.setInterval(function() { 
		if(waiter.value != "") {
			clearInterval(intervalCheckup);
			intervalCheckup = 0;
			if(waiter.value == "true") {
				if(realtimecheck) {
					if(document.getElementById('submessage')) {
						var message = document.getElementById('submessage');
						message.innerHTML = trans.FORM_ERROR_SUBDOMAIN;
					} else {
						var message = document.createElement("div");
						message.id = "submessage";
						message.className = "domainerror";
						message.innerHTML = trans.FORM_ERROR_SUBDOMAIN;
					}
					message.style.display = 'block';
					checkDomain.parentNode.appendChild(message);
				}
				
				checkDomain.className = 'errorInput';
				//checkDomain.onchange = function() { this.className = ''; if(document.getElementById('submessage')) { document.getElementById('submessage').style.display = 'none'} };

				if(!realtimecheck) alert(trans.FORM_ERROR_MESSAGE+"\n\n"+trans.FORM_ERROR_SUBDOMAIN);
				if(button) button.disabled = true;
			} else {
				if(document.getElementById('submessage')) {
					var message = document.getElementById('submessage');
					message.style.display = 'none';
				}
				if(button) button.disabled = false;
			}
		} 
	}, 500);
	
	
	lastcheckup = checkDomain.value;
	getAjaxUrl("/checkdomain/"+checkDomain.value+".dom");
};

function doPayment(type, button, formular) {
	if(document.getElementById('saferpaywaiter')) {
		var saferpaywaiter = document.getElementById('saferpaywaiter');
	} else {
		var saferpaywaiter = document.createElement("saferpaywaiter");
		saferpaywaiter.type = "hidden";
		saferpaywaiter.id = 'saferpaywaiter';
		document.body.appendChild(saferpaywaiter);
	}
	
	saferpaywaiter.value = "";
	if(intervalCheckupPayment != 0) clearInterval(intervalCheckupPayment);
	
	intervalCheckupPayment = window.setInterval(function() { 
		if(saferpaywaiter.value != "") {
			clearInterval(intervalCheckupPayment);
			if(saferpaywaiter.value == 0) {
				button.disabled = false;
				alert(trans.SAFERPAY_ERROR)
			} else {
				var fields = formular.getElementsByTagName('input');
				for(var i=0,n=fields.length;i<n;i++) {
					if(fields[i].name == "saferpayid") {
						fields[i].value = saferpaywaiter.value;
						break;
					}
				}
				
				formular.submit();
			}
		}
	}, 200);
	
	payfull = document.getElementById("alyear").checked ? "true" : "false";
	if(type == "creditcard") {
		sUrl = "card="+document.getElementById('card_no').value+"&expmonth="+document.getElementById('exp_month').value+"&expyear="+document.getElementById('exp_year').value+"&cvc="+document.getElementById('cvc').value;
	} else {
		sUrl = "kto="+document.getElementById('ktonr').value+"&blz="+document.getElementById('blz').value+"&name="+document.getElementById('ktoname').value;
	}
	
	getAjaxUrl("/dopayment/?orderid="+document.getElementById('orderid').value+"&level="+document.getElementById('level').value+"&payfull="+payfull+"&username="+document.getElementById('username').value+"&cardtype="+type+"&"+sUrl, "POST");
	
	//document.getElementById('fakeformfield').submit();
};


var W3CDOM = (document.createElement && document.getElementsByTagName);

function initFileUploads() {
	if (!W3CDOM) return;
	var fakeFileUpload = document.createElement('div');
	fakeFileUpload.className = 'fakefile';
	fakeFileUpload.appendChild(document.createElement('input'));
	var image = document.createElement('img');
	image.src='/src/images/buttons/button_upload_select.png';
	fakeFileUpload.appendChild(image);
	var x = document.getElementsByTagName('input');
	for (var i=0;i<x.length;i++) {
		if (x[i].type != 'file') continue;
		if (x[i].getAttribute('noscript')) continue;
		if (x[i].parentNode.className != 'fileinputs') continue;
		x[i].className = 'file hidden';
		var clone = fakeFileUpload.cloneNode(true);
		x[i].parentNode.appendChild(clone);
		x[i].relatedElement = clone.getElementsByTagName('input')[0];
		if (x[i].value)
			x[i].onchange();
		x[i].onchange = x[i].onmouseout = function () {
			this.relatedElement.value = this.value;
		};
	}
};

if(ie) {
	window.attachEvent("onload", function() { initFileUploads(); });
} else {
	window.addEventListener("load", function() { initFileUploads() }, false);
}

function createLoadingDiv() {
	var div = document.createElement("div");
	div.innerHTML = "<img src='/src/images/loading_wh.gif' align='left' style='margin-right:10px' alt="+trans.PLEASE_WAIT+" />"+trans.PLEASE_WAIT;
	
	return div;
};

function getFieldAttribute(elm, attr, _defaultValue) {
	var defaultValue = typeof _defaultValue == "undefined" ? "" : _defaultValue;
	
	try {
		if(elm == null) return defaultValue;
		return elm.getAttribute(attr) == null ? defaultValue : elm.getAttribute(attr);
	} catch(e) {
		return defaultValue;
	}
};

function urlencode(str) {
	str = (str+'').toString();
	return encodeURIComponent(str).replace(/!/g, '%21').replace(/'/g, '%27').replace(/\(/g, '%28').replace(/\)/g, '%29').replace(/\*/g, '%2A').replace(/%20/g, '+');
};


function urldecode (str) {
    var hash_map = {}, ret = str.toString(), unicodeStr='', hexEscStr='';
    
    var replacer = function (search, replace, str) {
        var tmp_arr = [];
        tmp_arr = str.split(search);
        return tmp_arr.join(replace);
    };
    
    // The hash_map is identical to the one in urlencode.
    hash_map["'"]   = '%27';
    hash_map['(']   = '%28';
    hash_map[')']   = '%29';
    hash_map['*']   = '%2A';
    hash_map['~']   = '%7E';
    hash_map['!']   = '%21';
    hash_map['%20'] = '+';
    hash_map['\u00DC'] = '%DC';
    hash_map['\u00FC'] = '%FC';
    hash_map['\u00C4'] = '%D4';
    hash_map['\u00E4'] = '%E4';
    hash_map['\u00D6'] = '%D6';
    hash_map['\u00F6'] = '%F6';
    hash_map['\u00DF'] = '%DF';
    hash_map['\u20AC'] = '%80';
    hash_map['\u0081'] = '%81';
    hash_map['\u201A'] = '%82';
    hash_map['\u0192'] = '%83';
    hash_map['\u201E'] = '%84';
    hash_map['\u2026'] = '%85';
    hash_map['\u2020'] = '%86';
    hash_map['\u2021'] = '%87';
    hash_map['\u02C6'] = '%88';
    hash_map['\u2030'] = '%89';
    hash_map['\u0160'] = '%8A';
    hash_map['\u2039'] = '%8B';
    hash_map['\u0152'] = '%8C';
    hash_map['\u008D'] = '%8D';
    hash_map['\u017D'] = '%8E';
    hash_map['\u008F'] = '%8F';
    hash_map['\u0090'] = '%90';
    hash_map['\u2018'] = '%91';
    hash_map['\u2019'] = '%92';
    hash_map['\u201C'] = '%93';
    hash_map['\u201D'] = '%94';
    hash_map['\u2022'] = '%95';
    hash_map['\u2013'] = '%96';
    hash_map['\u2014'] = '%97';
    hash_map['\u02DC'] = '%98';
    hash_map['\u2122'] = '%99';
    hash_map['\u0161'] = '%9A';
    hash_map['\u203A'] = '%9B';
    hash_map['\u0153'] = '%9C';
    hash_map['\u009D'] = '%9D';
    hash_map['\u017E'] = '%9E';
    hash_map['\u0178'] = '%9F';
    hash_map['\u00C6'] = '%C3%86';
    hash_map['\u00D8'] = '%C3%98';
    hash_map['\u00C5'] = '%C3%85';

    for (unicodeStr in hash_map) {
        hexEscStr = hash_map[unicodeStr]; // Switch order when decoding
        ret = replacer(hexEscStr, unicodeStr, ret); // Custom replace. No regexing
    }
    
    // End with decodeURIComponent, which most resembles PHP's encoding functions
    ret = decodeURIComponent(ret);

    return ret;
};

var webpopup = null;
function makeAssistant(elm, ids) {
	divelm = document.getElementById(ids);
	divelm.style.width = "900px";
	iframe = divelm.getElementsByTagName('iframe');
	
	iframe[0].src = elm.href;
	
	webpopup = new Popup(divelm);
	webpopup.usePopupClass = false;
	webpopup.marginTop = "5px";
	webpopup.showClose = false;
	webpopup.noEffect = true;
	webpopup.show();

	return false;
};

function destroyAssistant() {
	webpopup.closePopup();
	return false;
};

function getWindowHeight () {
	if (window.innerHeight) {
		return window.innerHeight;
	} else if (document.documentElement && document.documentElement.clientHeight) {
		return document.documentElement.clientHeight;
	} else if (document.body && document.body.clientHeight) {
		return document.body.clientHeight;
	} else {
		return 0;
	}
};

function doSlideImgs() {
	// initialize scrollable 
	$("div.scrollable").scrollable({size: 3});
};

function swapThemeImg(themeId) {
	$("#themeid").val(themeId);
	$("#content_pics").show();
	$("#submit").hide();
	
	$(document).scrollTo($("#step_2"), 'slow', {offset: {top:-100} });
	setContentPic("");
	
	$("#content_pics > div").each(function() {
		$(this).hide();
	});
	$("#cp_"+themeId).show();
	
	var elms = document.getElementById("content_pics").getElementsByTagName("img");
	for(i=0,n=elms.length;i<n;i++) {
		elms[i].className = "";
	}
	
	refreshPreviewImg();
};

function setContentPic(content_pic) {
	$("#content_pic").val(content_pic);
	if(content_pic != "") {
		$("#submit").show();
		$(document).scrollTo($("#submit"), 'fast', {offset: {top:-100} });
	}
	
	refreshPreviewImg();
};

function refreshPreviewImg() {
	$("#previewimg").attr("src", "/src/images/themechooser/img_"+$("#themeid").val()+"_"+$("#content_pic").val());
	//alert("/src/images/themechooser/img_"+$("#themeid").val()+"_"+$("#content_pic").val());
};

function showMiniImg(show, imgElm) {
	var elm = document.getElementById('previewImg');
	if(elm == null) {
		elm = document.createElement("img");
		elm.id = "previewImg";
		elm.style.display = 'none';
		elm.style.position = 'absolute';
		elm.style.padding = "3px";
		elm.style.border = "1px #c0c0c0 solid";
		elm.style.zIndex = "5000";
		document.body.appendChild(elm);
	}
	if(show) {
		var src = imgElm.src.replace("download", "minipreview");
		elm.src = src;
		elm.style.top = (replacepx(y)+5)+"px";
		elm.style.left = (replacepx(x)+5)+"px";
		elm.style.display = 'block';
	} else {
		elm.style.display = "none";
	}
};

function onloadNavigation() {
	setActions("navigation_lvls");
	$("#navigation_lvls > span").show();
	$("#navigation_lvls > span").toggleClass("open");
	
	$(function() {
		$("#accordion").accordion({
			autoHeight: false,
			collapsible: false
		});
	});
	
	$("#load_text").load("/content/navigation/load_docs/", function(data) {
		if($.browser.msie) {
			function markieren(elem) {
				try {
					if (document.selection && document.selection.createRange) {
						var textRange = document.selection.createRange();
						textRange.moveToElementText(elem);
						textRange.select();
					} else if (document.createRange && window.getSelection) {
						var range = document.createRange();
						range.selectNode(elem);
						var selection = window.getSelection();
						selection.removeAllRanges();
						selection.addRange(range);
					}
				} catch(e) {

				}
			};
		
			$('#load_text a').mousedown(function() { markieren(this) });
		}
	});
	
	$('#load_text a').click(function() { return false });
};

function toggleNavHome(id) {
	if($.browser.msie) {
		$('#'+id+' > span').each(function() {
			if(this.style.display == "block") {
				this.style.display = "none";
			} else {
				this.style.display = "block";
			}
		});
	} else {
		$("#"+id+" > span").slideToggle('fast');
	}
};

interId = 0;
function setActions() {
	$("#navigation_lvls h4").unbind("click");
	$("#navigation_lvls em").unbind("click");
	$("#navigation_lvls span").unbind("mousedown");
	$("#navigation_lvls span").unbind("mouseup");
	
	$("#navigation_lvls h4").click(function() {
		if($.browser.msie) {
			$("#"+this.parentNode.id+" > span").each(function() {
				if(this.style.display == "block") {
					this.style.display = "none";
				} else {
					this.style.display = "block";
				}
			});
		} else {
			$("#"+this.parentNode.id+" > span").slideToggle('fast');
		}
		$(this.parentNode).toggleClass("open");
		setEditbutton(this.parentNode, "text", false);
		
		return false;
	});
	
	$("#navigation_lvls em").click(function() {
		return newNavigation(this);
	});
	
	var clicked = false;
	$("#navigation_lvls span").mousedown(function(e, elm) {
		if(!clicked) {
			$(this.parentNode).sortable({
				placeholder: 'ui-state-highlight',
				axis: 'y',
				containment: 'parent',
				delay: 350,
				items: '> span',


				stop:function(event, ui) {
					$("#navigation_lvls h4").unbind("click");
					$("#navigation_lvls em").unbind("click");

					var ids = new Array();
					$("#"+this.id+" > span").each(function() {
						ids.push(this.getAttribute("nid"));
					});
					
					saveNavField('sort', ids);

					window.setTimeout(function() { setActions(); }, 200);
				}
			});
			clicked = true;
		}
	});
	$("#navigation_lvls span").mouseup(function() {
		window.clearTimeout(interId);
		$(this.parentNode).sortable('destroy');
		clicked = false;
	});
};

function load_images_onload() {
	$('.scrollable').scrollable({size: 8});
	$('.items > img').mouseover(function() { showMiniImg(true, this) });
	$('.items > img').mouseout(function() { showMiniImg(false, this) });
	$('.items > img').mousedown(function() { showMiniImg(false, this) });
};

function uninstallMod(name) {
	var div = document.getElementById(name+'edit');
	if (confirm(trans.ARE_YOU_SURE_NO_UNDO)) {
		div.innerHTML = '<img src="/src/images/loading_wh.gif" alt="Loading..." /><br/>';
		$(div).load("/content/module/delete?id="+name, null, function() { preloadAjaxHandling(); });
	}
};

function installMod(name) {
	var div = document.getElementById(name+'edit');
	var height = $("#"+name+"main").height();
	$(document).scrollTo($(div), 'fast', {offset: {top:-height} });
	div.style.display = "block";
	div.innerHTML = '<img src="/src/images/loading_wh.gif" alt="Loading..." /><br/>';
	$(div).load("/content/module/edit?id="+name, null, function() { preloadAjaxHandling(); $(document).scrollTo($("#"+name+"main"), 'fast') });
};

function toogleAssi(elm, inactive, active) {
	useTooltip = !useTooltip;
	if(useTooltip) {
		initTooltip();
		var newvalue = inactive;
		var onoff = "yes";
	} else {
		var newvalue = active;
		var onoff = "no";
	}
	$(elm).html(newvalue);
	$.get("/tooltip/"+onoff, function(data) {  });
	
	return false;
};

/** Setzt das Bild fuer den Tiny und RR Editor */
function setTinyImg(src, to) {
	try {
		opener.setTinyMCEImage(src);
	} catch(e) {
		to = to.split("?")[0];
		src = src.replace(document.location.protocol+'//'+document.location.hostname, "");
		document.location.href = "http://"+to+"/?opener=true&param="+src;
	}
	return false;
};

function getScrollXY() {
    var scrOfX = 0, scrOfY = 0;

    if( typeof( window.pageYOffset ) == 'number' ) {
        //Netscape compliant
        scrOfY = window.pageYOffset;
        scrOfX = window.pageXOffset;
    } else if( document.body && ( document.body.scrollLeft || document.body.scrollTop ) ) {
        //DOM compliant
        scrOfY = document.body.scrollTop;
        scrOfX = document.body.scrollLeft;
    } else if( document.documentElement && ( document.documentElement.scrollLeft || document.documentElement.scrollTop ) ) {
        //IE6 standards compliant mode
        scrOfY = document.documentElement.scrollTop;
        scrOfX = document.documentElement.scrollLeft;
    }
    return { x: scrOfX, y: scrOfY };
}


function addEditImageTag(parentElm, externHost) {
	if(typeof externHost == "undefined") {
		externHost = document.location.protocol+'//'+document.location.hostname;
	}
	var elms = parentElm.getElementsByTagName("img");
	
	var div = document.getElementById("editimglayer");
	if(div == null) {
		var div = document.createElement("div");
		div.id = "editimglayer";
		div.style.position = "absolute";
		div.style.textAlign = "right";
		div.style.background = "none";
	}
	div.innerHTML = "";
	//div.style.display = "none";
	
	var editImg = document.createElement("img");
	
	editImg.id = "editimg_edit";
	editImg.src = "/src/images/actions.png";
	editImg.style.padding = "5px";
	editImg.style.background = "#fff";
	div.appendChild(editImg);
	
	div.style.display = 'none';
	
	document.body.appendChild(div);
	for(i=0,n=elms.length;i<n;i++) {
		if(elms[i].src.replace("/download/", "").length != elms[i].src.length || elms[i].style.backgroundImage.replace("/preview/", "").replace("/download/", "").length != elms[i].style.backgroundImage.length) {
			$(elms[i]).unbind("mouseover");
			$(elms[i]).mouseover(function() {
				var editImg = document.getElementById("editimg_edit");
				var img = this;
				editImg.onclick = function(eventObject) {
					if(img.style.backgroundImage.replace("/preview/", "").replace("/download/", "").length != img.style.backgroundImage.length) {
						var file = img.style.backgroundImage.split("?");
						file = file[0].split("/");
						file = file[file.length-1].replace("')", "").replace('")', "");
					} else {
						var file = img.src.split("?");
						file = file[0].split("/");
						file = file[file.length-1];
					}
					
					if (eventObject) /* W3C (Firefox, Safari) */{
						eventObject.stopPropagation();
						eventObject.preventDefault();
					} else if (event.cancelBubble == false) /* IE7, Safari */{
						event.cancelBubble = true;
						event.returnValue = false;
					}
					
					newWindow(externHost+"/editfile/"+file+"?popup=true", screen.availWidth-30, screen.availHeight-30);
				};
				//var div = document.getElementById("editimglayer");
				
				div.style.display = 'block';
				div.style.width = "30px";
				div.style.marginLeft = (img.offsetWidth-30)+"px";
				var elm = div.parentNode.removeChild(div);
				this.parentNode.insertBefore(elm, this);
			});
		}
	}
};

var addEvent = (function () {
	if (document.addEventListener) {
		return function (el, type, fn) {
			if (el && el.nodeName || el === window) {
				el.addEventListener(type, fn, false);
			} else if (el && el.length) {
				for (var i = 0; i < el.length; i++) {
					addEvent(el[i], type, fn);
				}
			}
		};
	} else {
		return function (el, type, fn) {
			if (el && el.nodeName || el === window) {
				el.attachEvent('on' + type, function () { return fn.call(el, window.event); });
			} else if (el && el.length) {
				for (var i = 0; i < el.length; i++) {
					addEvent(el[i], type, fn);
				}
			}
		};
	}
})();

var removeEvent = (function () {
	if (document.addEventListener) {
		return function (el, type, fn) {
			if (el && el.nodeName || el === window) {
				el.removeEventListener(type, fn, false);
			} else if (el && el.length) {
				for (var i = 0; i < el.length; i++) {
					addEvent(el[i], type, fn);
				}
			}
		};
	} else {
		return function (el, type, fn) {
			if (el && el.nodeName || el === window) {
				el.detachEvent('on' + type, function () { return fn.call(el, window.event); });
			} else if (el && el.length) {
				for (var i = 0; i < el.length; i++) {
					addEvent(el[i], type, fn);
				}
			}
		};
	}
})();

