
// >>>>> javascript form-submit <<<<<
function f_form_submit(form_name, call_sel_options){

	//alert('form_name: ' + form_name + ' / call_sel_options: ' + call_sel_options);

	if (call_sel_options == "1")
	{
		f_call_sel_options(form_name);
	}

	document.forms[form_name].submit();

}



// >>>>> funktion für form-reset <<<<<
function f_form_reset(form_name){
	document.forms[form_name].reset();

	// images zurücksetzen

	// selectboxen zurücksetzen

}


//admin popup kalender
function openWindowCAL(x) {
	var_left = (screen.availWidth-804)/10;
	var_up = (screen.availHeight-640)/10;

	var adminpopup = window.open('', 'adminpopup','width=804, height=640, screenY='+var_left+', screenX='+var_up+', left='+var_left+', top='+var_up+', scrollbars=yes, menubar=yes, locationbar=no, resizable=yes, status=yes');
	//funct auch im opera
	document.forms[x].submit();
	if (window.focus) {adminpopup.focus()}

	//funct nicht im opera!!!(testet in 6.01)
	//document.getElementById(x).submit();
	return;
}


//media library popup
function openWindowLib(x) {
	var_left = (screen.availWidth-824)/6;
	var_up = (screen.availHeight-640)/6;
	medialib = window.open('', 'medialib', 'width=824, height=640, screenY='+var_left+', screenX='+var_up+', left='+var_left+', top='+var_up+', scrollbars=yes, menubar=yes, locationbar=no, resizable=yes,status=no');
	document.forms[x].submit();
	medialib.focus();
	return;
}


// >>>>> funktionen um einer selectbox options hinzuzufügen <<<<<

// file-auswahl erweitern
function add_file(sel_all, sel){
	sel_box_all = document.forms['adm_form'].elements[sel_all];
	sel_box = document.forms['adm_form'].elements[sel];

	if (sel_box_all.selectedIndex != -1){
		selected_option = sel_box_all.options[sel_box_all.selectedIndex].text;
		selected_value = sel_box_all.options[sel_box_all.selectedIndex].value;
		new_option = new Option(selected_option, selected_value);

		// festlegen an welcher stelle das file / die neue option eingfügt werden soll
		new_position = sel_box.selectedIndex;

			// array mit vorhanden sel_box einträgen erstellen
			sel_box_length = sel_box.length;
			sel_arr = new Array();

			// vorhandene options in array speichern
			for (i=0; i < sel_box_length; i++){

				groupValues=sel_box.options[i].value;

				// "x" in value nur vorhanden wenn gruppe löschen nicht erlaubt
				suche=groupValues.indexOf('x');

				// wenn "x" gefunden, value nach "x" ausgeben(nur group id um checken ob id vorhanden)
				if(suche != -1){
					groupValues=groupValues.slice(1);
				}
				sel_arr[i] = groupValues;

			}
			
			//nur zuweisen wenn gruppe noch nicht ausgewählt
			if(in_array(selected_value,sel_arr)){
				alert('Admin-group already selected!');
			} else {
				sel_box.options[document.forms['adm_form'].elements[sel].length] = new_option;
			}

	}
}


// options hinzufügen [erweitert] 
// *_ori = origin/herkunft, *_dest=destination/ziel
// entweder gibt es eine select-box oder ein bzw. zwei input-felder die werte für neue option liefern
// sb_ori = selectbox aus der ein element übernommen werden soll (muss immer einen value haben, sonst fehlen die werte zum übernehmen)
// i_text_ori = input-feld, das den text für die neue option liefert
// i_value_ori = input-feld, das den value für die neue option liefert
// from_popup => wenn auf true gesetzt, wird aus einem popup heraus übernommen
function add_option(form_name, sb_ori, i_text_ori, i_value_ori, sb_dest, from_popup){
	
	//alert ('form_name = ' + form_name + ' / sb_ori = ' + sb_ori + ' / i_text_ori = ' + i_text_ori + '/ i_value_ori = ' + i_value_ori + '/ sb_dest ='+  sb_dest + ' / from_popup = ' + from_popup);
	
	// destination-select-box (hier werden neue options hinzugefügt)
	sel_box_dest = document.forms[form_name].elements[sb_dest];
	
	// wenn aus einer select-box heraus werte übernommen werden
	if (sb_ori != ""){
		if (from_popup == true){

			sel_box_ori = medialib.seiteFrame.document.forms[form_name].elements[sb_ori]; // origin-select-box (von hier werden werte übernommen / opened window)
		}
		else {
			sel_box_ori = document.forms[form_name].elements[sb_ori]; // origin-select-box (von hier werden werte übernommen)
		}

		if (sel_box_ori.selectedIndex != -1){
			option_text = sel_box_ori.options[sel_box_ori.selectedIndex].text;

			// wenn die selectbox aus der hinzugefügt wird einen value hat, diesen auch auslesen und gemeinsam mit dem text als value übergeben
			if (sel_box_ori.options[sel_box_ori.selectedIndex].value){

				// zusatz für gallery
				if(document.forms['form4med_lib'].elements['insert_field'].value.indexOf("gallery") != -1){
					// den option-value zerlegen um filename / title / copyright / size zu erhalten
					option_ori_value = sel_box_ori.options[sel_box_ori.selectedIndex].value;
					var img_values_arr = option_ori_value.split(" ** ");
					var img_filename = img_values_arr[0];
					option_value = img_filename;
					//alert(option_value);
				}
				else{
					option_value = sel_box_ori.options[sel_box_ori.selectedIndex].value;

					if (from_popup == true){
						option_value_arr = option_value.split(" ** ");
						option_value = option_value_arr[0];
					}

					else {option_value = option_text + " || " + option_value;} // für links (wird ev. gar nicht gebraucht!?)
				}
			}
			// sonst wird als value der neuen option der text übergeben
			else {option_value = option_text;}
		}
		
		//alert (option_value + ' / ' + option_text);
	}
	
	// wenn aus input-feldern werte übernommen werden (z.b. links)
	else {
		if (i_text_ori != ""){
			option_text = document.forms[form_name].elements[i_text_ori].value;
			//alert("option_text = " + option_text);
		}
	
		if (i_value_ori != ""){
			option_value = document.forms[form_name].elements[i_value_ori].value;
			option_value = option_text + " || " + option_value;
			//alert("option_value = " + option_value);
		}
		else {option_value = option_text;}
	}

	// wenn sowohl option_text, als auch option_value vorhanden sind, neue option schreiben
	if (option_text && option_value) {
		new_option = new Option(option_text, option_value);

		// festlegen an welcher stelle die neue option eingefügt werden soll
		new_position = sel_box_dest.selectedIndex;
		//alert("new_position = " + new_position);


		// wenn ans ende hinzugefügt werden soll
		if (new_position == -1){
			sel_box_dest.options[sel_box_dest.length] = new_option;
			current_position = sel_box_dest.length - 1;
			//sel_box_dest.options[current_position].selected = true;
		}
		
		// wenn irgendwo zwischen bestehende options eingefügt werden soll
		else {
			// array mit vorhanden sel_box einträgen erstellen
			sel_box_dest_length = sel_box_dest.length;
			sel_box_dest_arr = new Array();

			// vorhandene options in array speichern
			for (i=0; i < sel_box_dest_length; i++){
				sel_box_dest_arr[i] = new Array();
				sel_box_dest_arr[i]['text'] = sel_box_dest.options[i].text;
				sel_box_dest_arr[i]['value'] = sel_box_dest.options[i].value;

				//alert ("sel_box_dest_arr[" + i + "][text] = " + sel_box_dest_arr[i]['text'] + " / sel_box_dest_arr[" + i + "][value] = " + sel_box_dest_arr[i]['value']);
			}
		
			new_length = sel_box_dest_arr.length + 1;
			//alert ('new_length = ' + new_length);

			i_arr = 0; // zähler für das array
			for (i=0; i < new_length; i++){
				//alert ("sel_box_dest_arr[" + i + "][text] = " + sel_box_dest_arr[i_arr]['text'] + " / sel_box_dest_arr[" + i + "][value] = " + sel_box_dest_arr[i_arr]['value']);
				if (i == new_position){
					sel_box_dest.options[i] = new_option;
					//sel_box_dest.options[i].selected = true;
				}
				else{
					next_old_option = new Option(sel_box_dest_arr[i_arr]['text'], sel_box_dest_arr[i_arr]['value']);
					sel_box_dest.options[i] = next_old_option;
					//alert("new_option[" + i + "] = " + sel_box_dest_arr[i_arr]['text'] + " / " + sel_box_dest_arr[i_arr]['value']);
					i_arr++;
				}
			}
		}
		delete option_value;
		delete option_text;

		if (i_text_ori != ""){document.forms[form_name].elements[i_text_ori].value = "";}
		if (i_value_ori != ""){document.forms[form_name].elements[i_value_ori].value = "";}
	}
}




// >>>>> funktionen um options vor dem abschicken des formulars zu selecten <<<<<

// options vor dem abschicken "selecten"
function sel_files(){
		sel_box = document.forms['adm_form'].elements['selected_group[]'];
		length_val = sel_box.length;
		for (ii=0; ii < length_val; ii++){sel_box.options[ii].selected = true;}
}

// options vor dem abschicken "selecten" [erweitert]
function sel_options(form_name, selbox_name){
		//alert ('Function sel_options / form-name=' + form_name + ' selbox_name=' +selbox_name);
		selbox = document.forms[form_name].elements[selbox_name]; // select-box
		selbox_length = selbox.length;
		for (ii=0; ii < selbox_length; ii++){selbox.options[ii].selected = true;}
}



// >>>>> funktionen um options aus selectbox zu entfernen <<<<<

//file-auswahl reduzieren
function remove_file(sel){

	sel_box = document.forms['adm_form'].elements[sel]
	sel_o_index = sel_box.selectedIndex;
	sel_value = sel_box.value;
	suche=sel_value.indexOf('x');;

	if(suche== -1){
		//alert('sel_o_index='+sel_o_index);
		if (sel_o_index != -1){sel_box.options[sel_o_index] = null;}
	} else {
		alert('You don\'t have permission to remove this group');
	}
}


//options reduzieren
function remove_option(form_name, selbox_name){
	selbox = document.forms[form_name].elements[selbox_name];
	option2remove = selbox.selectedIndex;
	//alert('sel_o_index='+sel_o_index);

	if (option2remove != -1){selbox.options[option2remove] = null;}

	if (selbox_name.indexOf("gallery[") != -1)
	{
		bracket_pos = selbox_name.indexOf("[");
		lang = selbox_name.substr(bracket_pos + 1, "2");
		//alert(lang);
		preview4gallery(form_name, lang);
	}
}


// >>>>> funktion um options in einer selectbox auf und ab zu verschieben (options brauchen text + value!!!) <<<<<

function option_move(form_name, selbox_name, direction){
	selbox = document.forms[form_name].elements[selbox_name];
	func_error = false;
	//alert(selbox.length);
	if (direction == "up" && (selbox.selectedIndex == 0 || selbox.length <= 1)){
		func_error = true;
	}
	if (direction == "down" && selbox.selectedIndex == (selbox.length - 1)){
		func_error = true;
	}
	if (selbox.length > 0 && selbox.selectedIndex != -1 && func_error != true){
		// index der zu bewegenden option
		option2move = selbox.selectedIndex;
		option2move_text = selbox.options[option2move].text;
		option2move_value = selbox.options[option2move].value;
		if (direction == "up"){move2value = option2move - 1;}
		if (direction == "down") {move2value = option2move + 1;}
		//alert("move2value = " + move2value);

		// alle options ausser der zu bewegenden in ein array schreiben
		selbox_length = selbox.length;
		selbox_arr = new Array();
		i_arr = 0;
		for (i=0; i<selbox_length; i++){
			if (i != option2move){
				selbox_arr[i_arr] = new Array();
				selbox_arr[i_arr]['text'] = selbox.options[i].text;
				//alert("selbox_arr[" + i_arr +"][text] = " + selbox_arr[i_arr]['text'])
				selbox_arr[i_arr]['value'] = selbox.options[i].value;
				//alert("selbox_arr[" + i_arr +"][value] = " + selbox_arr[i_arr]['value'])
				i_arr++;
			}
		}

		// neue options schreiben
		selbox.length=0;
		selbox_arr_length = selbox_arr.length;
		i_arr = 0;
		for (i=0; i<=selbox_arr.length; i++){
			if (i == move2value){
				next_option = new Option(option2move_text, option2move_value);
			}
			else{
				option_text = selbox_arr[i_arr]['text'];
				option_value = selbox_arr[i_arr]['value'];
				next_option = new Option(option_text, option_value);
				//alert ("next_option = " + next_option);
				i_arr++;
			}
			selbox.options[i] = next_option;
		}
		
		// bewegte option wieder selektieren
		selbox.options[move2value].selected = true;
	}
}



// >>>>> funktion um bilder aus der media-library in admin-formulare zu übernehmen <<<<<
// *_ori = origin/herkunft, *_dest=destination/ziel
// sb_ori = selectbox aus der ein element übernommen werden soll (muss immer einen value haben, sonst fehlen die werte zum übernehmen)
// i_dest = input-feld das den bildnamen speichert
// from_popup => wenn auf true gesetzt, wird aus einem popup heraus übernommen
// from_dir => wenn auf true gesetzt, wird aus einem popup heraus übernommen

function add_image(form_name, sb_ori, i_dest, from_popup, from_dir){
	//alert (form_name + ' / ' + sb_ori + ' / ' +  i_dest + ' / ' + from_popup);

	// destination-input-feld (hier wird value=bildname gespeichert)
	input_dest = document.forms[form_name].elements[i_dest];
	
	// wenn aus einer select-box heraus werte übernommen werden
	if (sb_ori != ""){
		if (from_popup == true){
			sel_box_ori = medialib.seiteFrame.document.forms[form_name].elements[sb_ori]; // origin-select-box in popup (von hier kommen werte)
		}
		else {
			sel_box_ori = document.forms[form_name].elements[sb_ori]; // origin-select-box im gleichen fenster (von hier kommen werte)
		}

		// filename aus value der gewählten option ermitteln
		if (sel_box_ori.selectedIndex != -1){

			option_ori_value = sel_box_ori.options[sel_box_ori.selectedIndex].value;
			//alert(option_ori_value);

			// den option-value zerlegen um filename / title / copyright / size zu erhalten
			var img_values_arr = option_ori_value.split(" ** ");

			var img_filename = img_values_arr[0];
			var img_title = img_values_arr[1];
			var img_copy = img_values_arr[2];


			if(from_dir=="_sml"){
				var img_size = img_values_arr[5];
			}

			if(from_dir=="_med"){
				var img_size = img_values_arr[6];
			}

			if(from_dir=="_lrg"){
				var img_size = img_values_arr[7];
			}

			if(from_dir=="_xlg"){
				var img_size = img_values_arr[8];
			}

			var img_size_arr = img_size.split('x');
			var img_width = img_size_arr[0];
			var img_height = img_size_arr[1];

			var img_filesize = img_values_arr[9]; // download-checkbox nur wenn dieser wert nicht 0

			//alert (img_filename + ' / ' + img_title + ' / ' + img_copy + ' / ' + img_size + ' / ' + img_width + ' / ' + img_height + ' / ' + img_filesize);

		}
	}

	if (img_filename) {

		// filename an entsprechendes input-feld übergeben
		input_dest.value = img_filename;

		// bild in adm-form anzeigen (preview-name erstellen)
		prev_nmb_pos = i_dest.length - 7;
		prev_nmb = i_dest.substr(prev_nmb_pos, 1);
		insert_lang = document.forms['form4med_lib'].elements['insert_lang'].value;

		preview_name = "prev_" + insert_lang + "_" + prev_nmb;
		//alert (preview_name);
		document.images[preview_name].width = img_width;
		document.images[preview_name].height = img_height;
		document.images[preview_name].src = "/_img/" + from_dir + "/" + img_filename;
		document.images[preview_name].title = img_title + "(\u00A9 " + img_copy + ")";
		document.images[preview_name].border = 1;


		// popup- und ev. download-checkboxen auf disabled="false" setzen
		popup_cb = "imgs[" + insert_lang + "][" + prev_nmb + "][popup]";
		document.forms[form_name].elements[popup_cb].disabled = false;

		if (img_filesize != "0"){
			download_cb = "imgs[" + insert_lang + "][" + prev_nmb + "][download]";
			document.forms[form_name].elements[download_cb].disabled = false;
		}

		// remove-pic-link (rpl) anzeigen
		rp_link = "rpl[" + insert_lang + "][" + prev_nmb + "]";
		//alert (rp_link);
		document.getElementById(rp_link).style.display= "inline";
		//document.getElementById(rp_link).style.visibility= "show";

		// db_check_val auf true setzen
		db_check_val_fn = "db_check_val[" + insert_lang + "]";
		set_db_check_val(form_name, db_check_val_fn);

		// img_filename wieder löschen
		delete img_filename;
	}
}

function remove_image(form_name, nmb, insert_lang){
	// input-field wieder auf leer setzen
	input_dest = "imgs[" + insert_lang + "][" + nmb + "][pic]";
	document.forms[form_name].elements[input_dest].value = "";

	// checkboxen unselecten und disabled setzen
	popup_cb = "imgs[" + insert_lang + "][" + nmb + "][popup]";
	document.forms[form_name].elements[popup_cb].checked = false;
	document.forms[form_name].elements[popup_cb].disabled = true;

	download_cb = "imgs[" + insert_lang + "][" + nmb + "][download]";
	document.forms[form_name].elements[download_cb].checked = false;
	document.forms[form_name].elements[download_cb].disabled = true;

	// vorschaubild wieder auf blank.gif setzen
	preview_name = "prev_" + insert_lang + "_" + nmb;
	//alert (preview_name);
	document.images[preview_name].width = 1;
	document.images[preview_name].height = 1;
	document.images[preview_name].src = "/_pix/blank.gif";
	document.images[preview_name].title = "";
	document.images[preview_name].border = 0;

	// remove-pic-link wieder ausblenden
	rp_link = "rpl[" + insert_lang + "][" + nmb + "]";
	document.getElementById(rp_link).style.display = "none";
	//document.getElementById(rp_link).style.visibility= "hide";

	// db_check_val auf true setzen
	db_check_val_fn = "db_check_val[" + insert_lang + "]";
	set_db_check_val(form_name, db_check_val_fn);

}


// >>>>> funktion um werte für den aufruf der media-library zu setzen <<<<<

// values für den aufruf von media-library setzen
function set_insert_values(form_name, type4insert, field4insert, lang4insert, size4insert){
	//alert('Supi Werte werden vor dem Abschicken noch gesetzt');
	document.forms[form_name].elements['insert_field'].value = field4insert;
	document.forms[form_name].elements['insert_type'].value = type4insert;
	document.forms[form_name].elements['insert_lang'].value = lang4insert;
	document.forms[form_name].elements['insert_size'].value = size4insert;
}


// >>>>> funktion um bei OnChange von formularfeldern, die variable db_check_val[] auf true zu setzen <<<<<

function set_db_check_val(form_name, db_check_val){
	db_check_val_field = document.forms[form_name].elements[db_check_val]; // input-hidden field
	if (db_check_val_field.value == "0"){
		db_check_val_field.value = "1"; 
		// alert (db_check_val_field.value);
	}
}


