/*
Contentpapst wurde von der sandoba.de medien agentur (www.sandoba.de) aus Berlin entworfen und unterliegt dem Urheberrecht. Jedwede Änderung des Codes außerhalb der Lizenzrechte ist nicht erlaubt. Anfragen bitte an "contact@sandoba.de".

Website: www.sandoba.de
© sandoba.de medien agentur, 2002-2009
*/

// Kennzeichnet den Einsatz von Prototype / script.aculo.us in den Dateien.

var jsapi = $;

// Öffnet ein Fenster in diversen Modulen.

function doWindowOpen(width, height, url, name, simple) {

	if (window.showModelessDialog && simple != 1) {

		height += 30;
		window.showModalDialog(url, '', 'dialogWidth:' + width + 'px; dialogHeight:' + height + 'px; center:yes; resizable:no; status:yes');

	} else {

		height += 45;
		var left = (screen.availWidth/2) - width/2;
		var top = (screen.availHeight/2) - height/2;
	  window.open(url, name, 'menubar=1, scrollbars=1, toolbar=0, statusbar=1, width='+width+', height='+height+', left='+left+', top='+top);

	}

}

// Öffnet ein Fenster im Modul "Artikel" zum Verfassen von Notizen.

function comment_window(module, number) {

	if (window.showModelessDialog) {

		window.showModalDialog('admin.php?file=' + module + '&mode=comment&number=' + number + '&clean=yes', '', 'dialogWidth:360px; dialogHeight:240px; center:yes; resizable:no; status:yes');

	} else {

		var left = (screen.availWidth/2) - (180);
		var top = (screen.availHeight/2) - (117);
		window.open('admin.php?file=' + module + '&mode=comment&number=' + number + '&clean=yes', 'client_comment', 'scrollbars=0, toolbar=0, statusbar=0, width=360, height=234, left='+left+', top='+top);
		
	}
	
}

// Öffnet ein Fenster im Modul "CP::Forms" zum Verfassen von Notizen.

function cpforms_comment_window(module, number) {

	if (window.showModelessDialog) {

		window.showModalDialog('admin.php?file=forms&mode=comment&form[module]=' + module + '&form[number]=' + number + '&clean=yes', '', 'dialogWidth:360px; dialogHeight:240px; center:yes; resizable:no; status:yes');

	} else {
	
		var left = (screen.availWidth/2) - (180);
		var top = (screen.availHeight/2) - (117);
		window.open('admin.php?file=forms&mode=comment&form[module]=' + module + '&form[number]=' + number + '&clean=yes', 'client_comment', 'scrollbars=0, toolbar=0, statusbar=0, width=360, height=234, left='+left+', top='+top);
		
	}
	
}

// Funktionen um Einträge zwischen <select>-Menüs auszutauschen.

function doSelectAddOption(theSel, theText, theValue) {
  var newOpt = new Option(theText, theValue);
  var selLength = theSel.length;
  theSel.options[selLength] = newOpt;
}

function doSelectDeleteOption(theSel, theIndex) {
  var selLength = theSel.length;
  if (selLength>0) {
    theSel.options[theIndex] = null;
  }
}

function doMoveOption(theSelFrom, theSelTo) {

  var selLength = theSelFrom.length;
  var selectedText = new Array();
  var selectedValues = new Array();
  var selectedCount = 0;
  var i;

  for(i = selLength-1; i >= 0; i--) {
    if(theSelFrom.options[i].selected) {
      selectedText[selectedCount] = theSelFrom.options[i].text;
      selectedValues[selectedCount] = theSelFrom.options[i].value;
      doSelectDeleteOption(theSelFrom, i);
      selectedCount++;
    }
  }

  for(i = selectedCount-1; i >= 0; i--) {
    doSelectAddOption(theSelTo, selectedText[i], selectedValues[i]);
  }

}

function doDateUnlimitedFrom(form) {

	form.date_start_day.options[0].selected=true;
	form.date_start_month.options[0].selected=true;
	form.date_start_year.options[0].selected=true;
	form.date_start_hour.options[0].selected=true;
	form.date_start_minute.options[0].selected=true;
	
}

function doDateUnlimitedTo(form) {

	form.date_stop_day.options[0].selected=true;
	form.date_stop_month.options[0].selected=true;
	form.date_stop_year.options[0].selected=true;
	form.date_stop_hour.options[0].selected=true;
	form.date_stop_minute.options[0].selected=true;
	
}

function doCleanTable(theLink, sql) {

	if (clean_text == '' || typeof(window.opera) != 'undefined') {
		return true;
	}

	var confirmed = confirm(clean_text + '\nSQL-Befehl: ' + sql);
	if (confirmed) {
		theLink.href += '&action=1';
	}

	return confirmed;

}

function doDropTable(theLink, sql) {

	if (drop_text == '' || typeof(window.opera) != 'undefined') {
		return true;
	}

	var confirmed = confirm(drop_text + '\nSQL-Befehl: ' + sql);
	if (confirmed) {
		theLink.href += '&action=1';
	}

	return confirmed;

}

function doSelectTables(form, select, proove) {

	var selected = document.forms[form].elements[select];
	var selectCount = selected.length;

	for (var i = 0; i < selectCount; i++) {
		selected.options[i].selected = proove;
	}

	return true;

}

// Erstellt die HTML-basierten Tooltips / Layer in verschiedenen Bereichen.

tooltip = null;

function doUpdateTooltip(e) {
	x = (document.all) ? window.event.x + document.body.scrollLeft : e.pageX;
	y = (document.all) ? window.event.y + document.body.scrollTop  : e.pageY;
	if (tooltip != null) {
		tooltip.style.left = (x + 20) + 'px';
		tooltip.style.top 	= (y + 20) + 'px';
	}
}

function doShowTooltip(name) {
	tooltip = jsapi(name);
	tooltip.style.display = 'block'
}

function doHideTooltip(name) {
	tooltip = jsapi(name);
	tooltip.style.display = 'none';
}

// Erzeugt einen Permalink dynamisch aus einem übermittelten Text.

function doCreatePermalink(input, output, prefix, suffix) {

	var content = jsapi(input).value.toLowerCase();
	
	if (content != '') {

		var from = new Array('ä', 'á', 'à', 'â', 'å', 'ö', 'ó', 'ò', 'ô', 'õ', 'ü', 'ú', 'ù', 'û', 'é', 'è', 'ê', 'í', 'ì', 'î', 'ß', 'ç', 'Ç', 'ñ', 'ý', '&', '.', '{', '}', ' ');
		var to = new Array('ae', 'a', 'a', 'a', 'a', 'oe', 'o', 'o', 'o', 'o', 'ue', 'u', 'u', 'u', 'e', 'e', 'e', 'i', 'i', 'i', 'ss', 'c', 'c', 'n', 'y', 'und', '-', '', '', '-');

		for (i=0; i<from.length; i++) {
			content = content.replace(from[i], to[i]);
		}

		content = content.replace(/[^a-z0-9-_]/g, ' ');
		content = content.replace(/[ ]{2,}/g, ' ');
		content = content.replace(/ /g, '-');
		jsapi(output).value = prefix + content + suffix;
		
		if (jsapi('ajax_check_permalink')) {
			new Ajax.Updater('ajax_check_permalink', 'admin.php?file=options&mode=check_permalink&clean=yes&ajax=yes&ajax_type=check_permalink&ajax_vars[permalink]=' + jsapi(output).value);
		}
		
	}
	
}

// Überprüft die Stärke eines Passwortes.

function doCheckPassword(field, layer, path) {

	var strongRegex = new RegExp("^(?=.{8,})(?=.*[A-Z])(?=.*[a-z])(?=.*[0-9])(?=.*\\W).*$", "g");
	var mediumRegex = new RegExp("^(?=.{7,})(((?=.*[A-Z])(?=.*[a-z]))|((?=.*[A-Z])(?=.*[0-9]))|((?=.*[a-z])(?=.*[0-9]))).*$", "g");
	var enoughRegex = new RegExp("(?=.{6,}).*", "g");
	var pwd = jsapi(field).value;

	if (pwd.length == 0) {
		jsapi(layer).innerHTML = '<img src="' + path + 'security_0.png" border="0" alt="" />';
	} else if (false == enoughRegex.test(pwd)) {
		jsapi(layer).innerHTML = '<img src="' + path + 'security_1.png" border="0" alt="" />';
	} else if (strongRegex.test(pwd)) {
		jsapi(layer).innerHTML = '<img src="' + path + 'security_4.png" border="0" alt="" />';
	} else if (mediumRegex.test(pwd)) {
		jsapi(layer).innerHTML = '<img src="' + path + 'security_3.png" border="0" alt="" />';
	} else {
		jsapi(layer).innerHTML = '<img src="' + path + 'security_2.png" border="0" alt="" />';
	}

}

// Blendet die Dropdown-Menüs des Hauptmenüs ein und aus.

function doMainMenu(name) {

	var menu = $$('div.layout_mainmenu_options');
	
	for (i = 0; i < menu.length; i++) {
	  var menuname = jsapi(menu[i]).readAttribute('id');
	  menuname = menuname.replace(/layout_mainmenu_options_/, '');
	  if (menuname != name) {
	  	Effect.Fade('layout_mainmenu_options_' + menuname, { duration: 0.0 });
			jsapi('layout_mainmenu_point_' + menuname).removeClassName('layout_mainmenu_link_active');
		}
	}
	
	jsapi('layout_mainmenu_point_' + name).addClassName('layout_mainmenu_link_active');

  Effect.Appear('layout_mainmenu_options_' + name, { duration: 0.2, to: 0.95 });
  window.setTimeout('doMainMenuOut(\'' + name + '\')', 4000);

}

function doMainMenuOut(name) {

  Effect.Fade('layout_mainmenu_options_' + name, { duration: 0.0 });
  jsapi('layout_mainmenu_point_' + name).removeClassName('layout_mainmenu_link_active');

}

function doMainMenuHide() {

	var menu = $$('div.layout_mainmenu_options');

	for (i = 0; i < menu.length; i++) {
	  var menuname = jsapi(menu[i]).readAttribute('id');
	  menuname = menuname.replace(/layout_mainmenu_options_/, '');
	  Effect.Fade('layout_mainmenu_options_' + menuname, { duration: 0.0 });
		jsapi('layout_mainmenu_point_' + menuname).removeClassName('layout_mainmenu_link_active');
	}

}

// Blendet die linke Spalte ein und aus.

function doToggleLeftmenu() {

  jsapi('layout_leftmenu').toggle();
  
	if (jsapi('layout_leftmenu').visible() == false) {
		new Ajax.Request('admin.php?file=options&mode=customize&form[file]=options&form[name]=leftmenu&form[hide]=1');
	} else {
	  new Ajax.Request('admin.php?file=options&mode=customize&form[file]=options&form[name]=leftmenu&form[hide]=0');
	}

}

// ajax_toggle_layer(): Zeigt einen einzelnen Layer an oder versteckt diesen.

function ajax_layer_toggle(name, type) {

	ajax_layer = jsapi(name);

	if (type == 'inline') {
		ajax_layer.style.display = 'inline';
	} else if (type == 'show') {
		ajax_layer.style.display = 'block';
	} else if (type == 'hide') {
		ajax_layer.style.display = 'none';
	} else {
		if (ajax_layer.style.display == 'block') {
			ajax_layer.style.display = 'none';
		} else {
			ajax_layer.style.display = 'block';
		}

		ajax_layer.style.zindex = '100';
	}

}

// ajax_get_position(): Ermittelt die x/y-Position eines beliebigen Elementes.

function ajax_get_position(element) {

  var tagname='', x=0, y=0;
  elem = jsapi(element);
  while ((typeof(elem)=='object') && (typeof(elem.tagName) != 'undefined')) {
    y+=elem.offsetTop;
    x+=elem.offsetLeft;
    tagname=elem.tagName.toUpperCase();

    if (tagname=='BODY') {
      elem=0;
		}

    if (typeof(elem)=='object') {
      if (typeof(elem.offsetParent)=='object') {
        elem=elem.offsetParent;
			}
		}
  }

  position=new Object();
  position.x=x;
  position.y=y;
  return position;
  
}