// Place your application-specific JavaScript functions and classes here
// This file is automatically included by javascript_include_tag :defaults
var FormLoading = {}
var ImageLoading = {} 

//alert(window.location.host)

FormLoading = { 
  loading: function() { 
    Element.show('form-indicator'); 
  },
  complete: function(form) { 
    Element.hide('form-indicator'); 
  }
}

ImageLoading = { 
  loading: function() {
    Element.show('loader-indicator');
  },
  complete: function(form) { 
    Element.hide('loader-indicator');
  }
}

function highlight(source, target) {
	source.onmouseover = function e() {
		target.className = target.className + ' hover';
	}
	source.onmouseout = function e() {
		target.className = target.className.replace(/hover/g, '');
	}
}
function addTag(tag, tagfield_id) {
    tagfield = document.getElementById(tagfield_id);
    tagfield.value = tag + ' ' + tagfield.value;
    tagfield.focus()
    return false;
}
function show_profiletext_edit(link, def_id) {
    //Effect.BlindDown(def_id, {duration:0.5})
    def = document.getElementById(def_id);
		def.style.display = 'block';
    link.className = 'hide';
    link.onclick = function e() {
        hide_profiletext_edit(link, def_id);
        return false;
    }
    return false;
}
function hide_profiletext_edit(link, def_id) {
    //Effect.BlindUp(def_id, {duration:0.5})
    def = document.getElementById(def_id);
		def.style.display = 'none';
    link.className = ''
    link.onclick = function e() {
        show_profiletext_edit(link, def_id);
        return false;
    }
    return false;
}

function apply_onclick_for_spinner(spinners, submitbuttons) {
    for (j = 0; j < submitbuttons.length; j++) {
        submitbuttons[j].onclick = function(e99) {
            for (i = 0; i < submitbuttons.length; i++) {
                spinners[i].style.display = 'inline'
                submitbuttons[i].style.display = 'none'
            }
        }
    }
}
function show_submitbuttons() {
    var submitbuttons = getElementsByClass('submitbutton')
    if(submitbuttons.length > 0) {
        var spinners = getElementsByClass('spinner')
        for (i = 0; i < submitbuttons.length; i++) {
            submitbuttons[i].style.display = 'inline'
            spinners[i].style.display = 'none'
        }
    }
}

function charge_submitbuttons() {
    var submitbuttons = getElementsByClass('submitbutton')
    if(submitbuttons.length > 0) {
    	var spinners = getElementsByClass('spinner')
      	apply_onclick_for_spinner(spinners, submitbuttons)
    }
}

function show_more_text(less_link, more_link, less_text, more_text) {
    more_text.style.display = 'block'
    less_text.style.display = 'none'
    less_link.onclick = function(e989) {
        hide_more_text(less_link, more_link, less_text, more_text);
        return false;
    }
}
function hide_more_text(less_link, more_link, less_text, more_text) {
    more_text.style.display = 'none'
    less_text.style.display = 'block'
    more_link.onclick = function(e989) {
        show_more_text(less_link, more_link, less_text, more_text);
        return false;
    }
}

function addTag(tag, field_id) {
    tagfield = document.getElementById(field_id);
    val = tagfield.value;
    if (val.length > 0) {
        tagfield.value = val + ', ' + tag;
    } else {
        tagfield.value = tag;
    }
    return false;
}

window.onload = function e() {
    
    var container = document.getElementById('content');
    var rec_text_truncated = getElementsByClass('rec_text_truncated', container, 'div');
    if(rec_text_truncated.length > 0) {
        var rec_text_full = getElementsByClass('rec_text_full', container, 'div');
        var more_link = getElementsByClass('rec_text_more', container, 'a');
        var less_link = getElementsByClass('rec_text_less', container, 'a');
	    for (i = 0; i < rec_text_truncated.length; i++) {
            hide_more_text(less_link[i], more_link[i], rec_text_truncated[i], rec_text_full[i]);
        }
    }
    
    var profile_text_truncated = document.getElementById('profile_text_truncated');
    if(profile_text_truncated) {
        var profile_text_full = document.getElementById('profile_text_full');
        var profile_text_more = document.getElementById('profile_text_more');
        var profile_text_less = document.getElementById('profile_text_less');
        hide_more_text(profile_text_less, profile_text_more, profile_text_truncated, profile_text_full);
    }
        
    var shortDescription = document.getElementById('short_description');
    if(shortDescription) {
        applyTextareaCount(shortDescription, 'character_count', 200)
    }
    
    
	var courseDescriptions = getElementsByClass('course_description');
	if(courseDescriptions.length > 0) {
	    for (i = 0; i < courseDescriptions.length; i++) {
        applyTextareaCount(courseDescriptions[i], ('character_count' + i), 1500)
	    }
	}
	
	var topics_box = document.getElementById('topics_box')
    if(topics_box) {
        var url = topics_box.innerHTML
        
        var js = document.createElement("script");
        js.setAttribute("type", "text/javascript");
        js.setAttribute("src", url);
        // Lokal testen:
        //js.setAttribute("src", 'http://llm.localhost.com:3001/banner/widget_300x250');
        topics_box.innerHTML = ''
        topics_box.appendChild(js);
    }
    
    
    var site_ids = new Array('llm', 'mba', 'bm', 'exec', 'b', 'law', 'internate', 'private')
    
    for (i = 0; i < site_ids.length; i++) {
        if(box = document.getElementById('news_portal_' + site_ids[i])) {
            var js = document.createElement("script");
            js.setAttribute("type", "text/javascript");
            js.setAttribute("src", box.innerHTML);
            box.appendChild(js);
        }
    }

    aus('institution_details_top');
    if(document.getElementById('institution_details')) {
        Effect.BlindDown('institution_details', {duration:0.5});
    }
    
    if(document.getElementById('fulltext_submit')) {
        highlight(document.getElementById('fulltext_submit'), document.getElementById('fulltext_submit'))
    }
    if(document.getElementById('fulltext_submit2')) {
        highlight(document.getElementById('fulltext_submit2'), document.getElementById('fulltext_submit2'))
    }
    charge_submitbuttons();
	//getNewWindowLinks();
	if(searchfield = document.getElementById('searchfield')) {
        searchfield.onblur = function(e2) {
            if(searchfield.value=='') {
                searchfield.value=searchfield.defaultValue; 
                searchfield.style.color = '#c8c8c8';
            }
        }
        searchfield.onfocus = function(e2) {
            if(searchfield.value==searchfield.defaultValue) {
                searchfield.value=''; 
                searchfield.style.color = '#333333';
            }
        }
    }

	if(document.getElementById('featurebox')) {
		document.getElementById('featurebox').style.display = 'none';
	}
	if(document.getElementById('featurebox_inactive')) {
		document.getElementById('featurebox_inactive').style.display = 'block';
	}
		
	var watchButsLaw = getElementsByClass('watchbut_law_input');
	var watchButsBus = getElementsByClass('watchbut_bus_input');
	// watchlist buttons
	if(watchButsLaw.length > 0) {
	    watchButs = watchButsLaw
	    var hover_img = new Image(224,36);
	    hover_img.src="/images/bg/watchlist_law_hover.gif";
    }
	if(watchButsBus.length > 0) {
	    watchButs = watchButsBus
	    var hover_img = new Image(224,36);
	    hover_img.src="/images/bg/watchlist_business_hover.gif";
    }
    if(typeof(watchButs) == 'object') {
	    for (i = 0, j = 0; i < watchButs.length; i++) {
		    applyEffect(watchButs[i], hover_img.src);
	    }
    }
	function applyEffect(el, hover_imgsrc) {
	    original_src = el.src
		el.onmouseover = function eee() {
			el.src = hover_imgsrc;
		}
		el.onmouseout=function eeee() {
			el.src = original_src;
		}
	}
	var latest_rec_fotos = getElementsByClass('latest_rec_foto',document,'A');
	var latest_rec_texts = getElementsByClass('latest_rec_text',document,'A');
	if(latest_rec_fotos.length > 0) {
		for (i = 0; i < latest_rec_fotos.length; i++) {
			highlight(latest_rec_fotos[i], latest_rec_texts[i]);
			highlight(latest_rec_texts[i], latest_rec_fotos[i]);
		}
	}
	var preview_imgs = getElementsByClass('preview_img',document,'A');
	var previewTexts = getElementsByClass('previewText',document,'A');
	if(previewTexts.length > 0) {
		for (i = 0; i < previewTexts.length; i++) {
			highlight(preview_imgs[i], previewTexts[i]);
			highlight(previewTexts[i], preview_imgs[i]);
		}
	}
	/*
	if(document.getElementById('watchlist_button')) {
		
		var watchlist_button = document.getElementById('watchlist_button');
		watchlist_button.onmouseover=function eee() {
			watchlist_button.src='/images/bg/bt_add_hover.gif';
		}
		watchlist_button.onmouseout=function eeee() {
			watchlist_button.src='/images/bg/bt_add.gif';
		}
	}*/
	
    if(document.getElementById('boxes_areas') && document.getElementById('current_tour')) {
        var heightToScroll = document.getElementById('current_tour').className;

        heightToScroll = heightToScroll.slice(5,7);
    
        heightToScroll = heightToScroll * 26;
        document.getElementById('boxes_areas').scrollTop = heightToScroll;
    }
}
function ein_inline(id) {
    if(document.getElementById(id)) {
	    document.getElementById(id).style.display = 'inline';
    }
}
function ein(id) {
    if(document.getElementById(id)) {
	    document.getElementById(id).style.display = 'block';
    }
}
function aus(id) {
    if(document.getElementById(id)) {
	    document.getElementById(id).style.display = 'none';
    }
}

function userman_less(dom_user) {
    aus('additional_' + dom_user);
    aus('less_' + dom_user);
    ein('more_' + dom_user);
    getElementById('id_column_' + dom_user).setAttribute('rowSpan',2);
}

function jump_to_top() {
    window.location.hash = 'top';
}

function applyValidate(TextAreaId, InfoId) {
    
		var theTextArea = document.getElementById(TextAreaId);
		var theTextAreaInfo = document.getElementById(InfoId);
	if(theTextArea) {
		theTextArea.onchange = theTextArea.onkeyup = theTextArea.onmouseup = theTextArea.onmouseover = theTextArea.onmouseout = function ee() {
			validate(theTextArea, theTextAreaInfo);
		}
	}
}

function validate(theTextArea, theInfo) {
	maxlength=1500;
	if(theTextArea.value.length>=maxlength) {
		theInfo.style.display = 'block';
		theTextArea.focus();
		return false;
	} else {
		theInfo.style.display = 'none';
		return true;
	}
}

function applyTextareaCount(theTextArea, count_id, maxlength) {
	var theCount = document.getElementById(count_id);
	if(theTextArea && theCount) {
		theTextArea.onchange = theTextArea.onkeyup = theTextArea.onmouseup = theTextArea.onmouseover = theTextArea.onmouseout = function ee() {
			characterCount(theTextArea, theCount, maxlength);
		}
	}
}

function characterCount(theTextArea, theCount, maxlength) {
	theCount.innerHTML = theTextArea.value.length
    var character_count_warning = document.getElementById('character_count_warning')
    if(theTextArea.value.length>maxlength) {
        if(character_count_warning) {character_count_warning.style.display = 'block';}
		theCount.style.color = 'red';
		theTextArea.focus();
		return false;
	} else {
        if(character_count_warning) {character_count_warning.style.display = 'none';}
		theCount.style.color = 'black';
		return true;
	}
}



/*  */
/*
addEvent function from http://www.quirksmode.org/blog/archives/2005/10/_and_the_winner_1.html
*/
function addEvent( obj, type, fn )
{
	if (obj.addEventListener)
		obj.addEventListener( type, fn, false );
	else if (obj.attachEvent)
	{
		obj["e"+type+fn] = fn;
		obj[type+fn] = function() { obj["e"+type+fn]( window.event ); }
		obj.attachEvent( "on"+type, obj[type+fn] );
	}
}

function removeEvent( obj, type, fn )
{
	if (obj.removeEventListener)
		obj.removeEventListener( type, fn, false );
	else if (obj.detachEvent)
	{
		obj.detachEvent( "on"+type, obj[type+fn] );
		obj[type+fn] = null;
		obj["e"+type+fn] = null;
	}
}

/* Create the new window */
function openInNewWindow(e) {
	var event;
	if (!e) event = window.event;
	else event = e;
	// Abort if a modifier key is pressed
	if (event.shiftKey || event.altKey || event.ctrlKey || event.metaKey) {
		return true;
	}
	else {
		// Change "_blank" to something like "newWindow" to load all links in the same new window
	    //var newWindow = window.open(this.getAttribute('href'), '_blank', "width=600,height=500,location=no,toolbar=no,status=yes,resizable=yes,scrollbars=yes");
	    var newWindow = window.open(this.getAttribute('href'), '_blank', "width=600,height=500,location=yes,toolbar=yes,status=yes,resizable=yes,scrollbars=yes");
		if (newWindow) {
			if (newWindow.focus) {
				newWindow.focus();
			}
			return false;
		}
		return true;
	}
}

/*
Add the openInNewWindow function to the onclick event of links with a class name of "popup"
*/
function getNewWindowLinks() {
	// Check that the browser is DOM compliant
	if (document.getElementById && document.createElement && document.appendChild) {
		// Change this to the text you want to use to alert the user that a new window will be opened
		//var strNewWindowAlert = " (opens in a new window)";
		var strNewWindowAlert = "";
		// Find all links
		var links = document.getElementsByTagName('a');
		var objWarningText;
		var link;
		for (var i = 0; i < links.length; i++) {
			link = links[i];
			// Find all links with a class name of "popup"
			if (/\bpopup\b/.test(link.className)) {
				// Create an em element containing the new window warning text and insert it after the link text
				objWarningText = document.createElement("em");
				objWarningText.appendChild(document.createTextNode(strNewWindowAlert));
				link.appendChild(objWarningText);
				link.onclick = openInNewWindow;
			}
		}
		objWarningText = null;
	}
}

function getElementsByClass(searchClass,node,tag) {
	var classElements = new Array();
	if ( node == null )
		node = document;
	if ( tag == null )
		tag = '*';
	var els = node.getElementsByTagName(tag);
	var elsLen = els.length;
	var pattern = new RegExp("(^|\\s)"+searchClass+"(\\s|$)");
	for (i = 0, j = 0; i < elsLen; i++) {
		if ( pattern.test(els[i].className) ) {
			classElements[j] = els[i];
			j++;
		}
	}
	return classElements;
}

addEvent(window, 'load', getNewWindowLinks);

function checkUsCountry(element, uuid) {
	if ($F(element) == 'United States of America') {
		new Ajax.Request('/' + controller_name + '/show_states?uuid=' + escape(uuid), {asynchronous:true, evalScripts:true});
	} else {
		if ($$('.state_select_' + uuid)) {
			$$('.state_select_' + uuid).invoke('remove');
		}
	}
}

function hideVenueFormFields(uuid) {
	if ($F('venue_online_event_' + uuid) == 'yes') {
		$$('.non_online_event_information_' + uuid).invoke('hide');
	} else {
		$$('.non_online_event_information_' + uuid).invoke('show');
	}
}

function display_state_field(v) {
  if (v == 'United States of America') {
    Effect.Appear('state_field');
  } else {
    Effect.Fade('state_field');
  }
}

function display_de_state_field(v) {
  if (v == 'Germany') {
    Effect.Appear('de_state_field');
  } else {
    Effect.Fade('de_state_field')
  }
}

function display_au_state_field(v) {
  if (v == 'Austria') {
    Effect.Appear('au_state_field');
  } else {
    Effect.Fade('au_state_field')
  }
}
function display_ch_state_field(v) {
  if (v == 'Switzerland') {
    Effect.Appear('ch_state_field');
  } else {
    Effect.Fade('ch_state_field')
  }
}
function display_uk_state_field(v) {
  if (v == 'United Kingdom') {
    Effect.Appear('uk_state_field');
  } else {
    Effect.Fade('uk_state_field')
  }
}
