
// adON - erico brehmer - 23.07.08

// GET PARAMETERS DUMMY -->
//
// Um das erfolgreiche Speichern von DAten in den Tamplates zu simulieren, hebn wir diese kleine
// Funktion, die Get-Parameter ausliest und wir so die Meldung nach dem Speichern anzeigen koennen:
//
// wird hier weiter unten mittels "window.onload" aufgerufen
//
// das Anzeigen der Success meldung muesste fuer jede Logik leicht anzupassen sein.
//
function getUrlParams() {

	var query = window.location.search.substring(1);
	var parms = query.split('&');
	
	if (parms.length > 0) {
	
	for (var i=0; i<parms.length; i++) {
	
		var pos = parms[i].indexOf('=');
		if (pos > 0) {
			var key = parms[i].substring(0,pos);
			var val = parms[i].substring(pos+1);
	
			if 	(key == 'edited' && val == '1') {
			
				document.getElementById('formSuccessInner').innerHTML = "Die Daten wurden erfolgreich gespeichert&nbsp;&nbsp;&nbsp;<img src='images/accept.gif' border='0' />";
				new Effect.SlideDown(document.getElementById('formSuccess'), {duration:0.5});
			
			}	
			
		}
		
	}
	
	}

}

function cleanUpPrintWindow(){
	var heute = new Date();
	var jahr = heute.getFullYear();
	var monat = heute.getMonth()+1;
	var tag = heute.getDate();
	//text = String(jahr);
	//text = text.substr(2,2);
	monat  = ((monat < 10) ? "0" + monat : monat);
	tag  = ((tag < 10) ? "0" + tag : tag);
	if (document.getElementById('toolbar-news')) {
		document.getElementById('toolbar-news').innerHTML = '<div class="printwindow">&copy; Schulleitung.de, Wolters Kluwer Deutschland GmbH, '+tag+'.'+monat+'.'+jahr+'</div>';
	}
	
	if (document.getElementById('print_logo')) {
		document.getElementById('print_logo').innerHTML = '<h1>Schulleitung</h1><div class="adon-divider-solid"></div>';
	}
	if (document.getElementById('slot_right_box')) {
		document.getElementById('slot_right_box').style.display = "none";
	}
	window.print();
}

function makeGbImg() {

	/*
	var inputElements = document.getElementsByTagName('input');
	
	for (var i = 0; i < inputElements.length; i++) {
		if (inputElements[i].className) {
			if (inputElements[i].className.indexOf('error') > -1) {
				document.getElementById('adonformFeedback').style.display = "block";
				new Effect.Highlight(document.getElementById('adonformFeedback'), {duration:1.9, startcolor: "#e6b4b4", endcolor: "#f1f3de",});
			}
		}
	}
*/

}


function clearPage() {
	
	// shop
	// themenportale
	// wolters-kluwer-deutschland
	
	if (document.getElementById('shop')) {
	
		if (document.getElementById('shop').style.display != 'none') {
			document.getElementById('shop').style.display = 'none';
		}
		
	} 
	if (document.getElementById('themenportale')) {
		if (document.getElementById('themenportale').style.display != 'none') {
			document.getElementById('themenportale').style.display = 'none';
		}
	}
	if (document.getElementById('themenportale')) {
		if (document.getElementById('wolters-kluwer-deutschland').style.display != 'none') {
			document.getElementById('wolters-kluwer-deutschland').style.display = 'none';
		}
	}
	
	// form-feedback
	
	if (document.getElementById('formFeedbackOuter')) {
		
		if (document.getElementById('formFeedbackOuter').style.display != 'none') {		
			setTimeout("new Effect.SlideUp(document.getElementById('formFeedbackOuter'), {duration:0.4})", 600);
		}
	}

}

// FORM CHECK DUMMY -->
//
// Nur ein Beispiel:
// Die Idee dahinter ist immer das selbe Div Elelemt (errorElem & errorInnerElem) fuer die Fehleranzeige zu benutzen.
// Auf jedem HTML-Template ist das versteckte ERROR DIV direkt unter der Header-Zeile - der Effekt (new Effect.SlideDown(errorElem))
// scheint die Fehlermeldung aus der Ueberschriftszeile zu "sliden".
//
// Somit wid eine einheiltiche Fehler-Anzeige sowie -Behandlung gewaehrleistet
//
function checkForm(formElem, errorElem, errorInnerElem) {
		
	var errors = false;	
	var errorArray = new Array();
	
	// falls Login Formular
	if (formElem.name == 'loginForm'){

			if (formElem.benutzername.value == '') {
				errorArray.push("Bitte geben Sie Ihre E-Mail Adresse an");
				errors = true;
			}
			
			if (formElem.kennwort.value == '') {
				errorArray.push("Bitte geben Sie Ihren Kennwort an");
				errors = true;
			}
			
	}
	
	// falls Konto Freischalten
	if (formElem.name == 'kontoFreischalten'){

			if (formElem.zugangscode.value == '' || formElem.zugangscode.value == 'Zugangscode') {
				errorArray.push("Bitte geben Sie einen Zugangscode ein");
				errors = true;
			}
						
	}
	
	// falls Konto Daten aendern
	if (formElem.name == 'kontoDaten'){

			if (formElem.benutzername.value == '') {
				errorArray.push("Bitte geben Sie Ihre E-Mail Adresse an");
				errors = true;
			}
						
	}
	
	// falls Zahlungsarrt aendern
	if (formElem.name == 'zahlungsDaten'){

			if (formElem.zahlungsmethode[1].checked == true) {
			
				if (formElem.kontonummer.value == '') {
					errorArray.push("Bitte geben Sie Ihre Kontonummer an");
					errors = true;
				}
				if (formElem.bankleitzahl.value == '') {
					errorArray.push("Bitte geben Sie die Bankleitzahl an");
					errors = true;
				}
				if (formElem.bankinstitut.value == '') {
					errorArray.push("Bitte geben Sie das Bankisntitut an");
					errors = true;
				}
				if (formElem.kontoinhaber.value == '') {
					errorArray.push("Bitte geben Sie den Kontoinhaber an");
					errors = true;
				}
				
			}
						
	}
	
	if (errors) {
	
		errorInnerElem.innerHTML = "<div style='color:#4c4c4c;font-weight:bold'>Der Vorgang konnte nicht ausgef&uuml;hrt werden:</div>";
		
		for (i = 0; i < errorArray.length; i++) {
			errorInnerElem.innerHTML += "<br />- " + errorArray[i];
		}
				
		// falls fehlermeldung schon offen war, nicht wieder oeffnen
		// nur aktualisieren <<
		if (errorElem.style.display == 'none') {
			new Effect.SlideDown(errorElem, {duration:0.5});
			// falls schon gespeichert worden war und SUCCESS meldung noch offen ist
			if (document.getElementById('formSuccess').style.display != 'none') {
				setTimeout("new Effect.SlideUp(document.getElementById('formSuccess'), {duration:0.5})", 600);
			}
		}
	} else {
		
		formElem.submit();
	
	}
	

}




// SHOW LEVEL 1 MENU HIDDEN DIVs -->

var linkelem = '';
var divArray = ['themenportale', 'wolters-kluwer-deutschland', 'shop'];
function showFloatingMenu(linkelem, windivid, elemy, elemx) {
	
	if(windivid == 'themenportale') {
		document.getElementById('wolters-kluwer-deutschland').style.display = "none";
		document.getElementById('shop').style.display = "none";
	}
	
	if(windivid == 'wolters-kluwer-deutschland') {
		document.getElementById('themenportale').style.display = "none";
		document.getElementById('shop').style.display = "none";
	}
	
	if(windivid == 'shop') {
		document.getElementById('themenportale').style.display = "none";
		document.getElementById('wolters-kluwer-deutschland').style.display = "none";
	}
	
	// Bild im LinkElement austauschen
	if (document.getElementById(windivid).style.display == 'none') {
		document.getElementById(windivid).style.display = "block";
	} else {
		document.getElementById(windivid).style.display = "none";
	}
	
	if(self.linkelem != linkelem) {
		document.getElementById(windivid).style.display = "block";
	}
	
	// LinkElement Position ermitteln und anpassen
	document.getElementById(windivid).style.top = (findPosY(linkelem) +elemy)+"px";
	document.getElementById(windivid).style.left = (findPosX(linkelem) - elemx)+"px";
	self.linkelem = linkelem;
	// ShoppingCart Anzeigen/Verstecken
}

function hideFloatingMenu(divid) {
	document.getElementById(divid).style.display = 'none';
}

function findPosX(obj) 
{
  var curleft = 0;
  if (obj.offsetParent) 
  {
    while (obj.offsetParent) 
        {
            curleft += obj.offsetLeft
            obj = obj.offsetParent;
        }
    }
    else if (obj.x)
        curleft += obj.x;
    return curleft;
    
    
}

function findPosY(obj) 
{
    var curtop = 0;
    if (obj.offsetParent) 
    {
        while (obj.offsetParent) 
        {
            curtop += obj.offsetTop
            obj = obj.offsetParent;
        }
    }
    else if (obj.y)
        curtop += obj.y;
    return curtop;
}
function findPosX(obj) 
{
  var curleft = 0;
  if (obj.offsetParent) 
  {
    while (obj.offsetParent) 
        {
            curleft += obj.offsetLeft
            obj = obj.offsetParent;
        }
    }
    else if (obj.x)
        curleft += obj.x;
    return curleft;
}


function findPosY(obj) 
{
    var curtop = 0;
    if (obj.offsetParent) 
    {
        while (obj.offsetParent) 
        {
            curtop += obj.offsetTop
            obj = obj.offsetParent;
        }
    }
    else if (obj.y)
        curtop += obj.y;
    return curtop;
}

function changeSource(image) {

	var fullimg = image.src.substring(image.src.lastIndexOf('/') + 1, image.src.length);
	var picext = fullimg.substring(fullimg.indexOf('.'), fullimg.length);
	var picname = fullimg.substring(0, fullimg.indexOf('.'));
	var newpic;
	
	if (picname.indexOf('_on') != -1) {
		newpic = picname.substring(0, picname.indexOf('_on')) + picext;
		}
	else {
		newpic = picname + '_on' + picext;
		}	
	
	image.src = "../html/img/" + newpic;

}


var unreserved = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz-_.~";
var reserved = "!*'();:@&amp;=+$,/?%#[]";
var allowed = unreserved + reserved;
var hexchars = "0123456789ABCDEFabcdef";

// This function returns a percent sign followed by two hexadecimal digits.
// Input is a decimal value not greater than 255.
function gethex(decimal) {
    return "%" + hexchars.charAt(decimal >> 4) + hexchars.charAt(decimal & 0xF);
}

// This function "does the job": it takes the user input and encodes it in the UTF-8 charset
function encode(decoded/*, productCode*/) {
    // Some variables:
    var encoded = "";
    for (var i = 0; i < decoded.length; i++) {
        var ch = decoded.charAt(i);
        // Check if character is an unreserved character:
        if (unreserved.indexOf(ch) != -1) {
            encoded = encoded + ch;
        } else {
            // The position in the Unicode table tells us how many bytes are needed.
            // Note that if we talk about first, second, etc. in the following, we are
            // counting from left to right:
            //
            //   Position in   |  Bytes needed   | Binary representation
            //  Unicode table  |   for UTF-8     |       of UTF-8
            //     0 -     127 |    1 byte       | 0XXX.XXXX
            //   128 -    2047 |    2 bytes      | 110X.XXXX 10XX.XXXX
            //  2048 -   65535 |    3 bytes      | 1110.XXXX 10XX.XXXX 10XX.XXXX
            // 65536 - 2097151 |    4 bytes      | 1111.0XXX 10XX.XXXX 10XX.XXXX 10XX.XXXX

            var charcode = decoded.charCodeAt(i);

            // Position 0 - 127 is equal to percent-encoding with an ASCII character encoding:
            if (charcode < 128) {
                encoded = encoded + gethex(charcode);
            }

            // Position 128 - 2047: two bytes for UTF-8 character encoding.
            if (charcode > 127 && charcode < 2048) {
                // First UTF byte: Mask the first five bits of charcode with binary 110X.XXXX:
                encoded = encoded + gethex((charcode >> 6) | 0xC0);
                // Second UTF byte: Get last six bits of charcode and mask them with binary 10XX.XXXX:
                encoded = encoded + gethex((charcode & 0x3F) | 0x80);
            }

            // Position 2048 - 65535: three bytes for UTF-8 character encoding.
            if (charcode > 2047 && charcode < 65536) {
                // First UTF byte: Mask the first four bits of charcode with binary 1110.XXXX:
                encoded = encoded + gethex((charcode >> 12) | 0xE0);
                // Second UTF byte: Get the next six bits of charcode and mask them binary 10XX.XXXX:
                encoded = encoded + gethex(((charcode >> 6) & 0x3F) | 0x80);
                // Third UTF byte: Get the last six bits of charcode and mask them binary 10XX.XXXX:
                encoded = encoded + gethex((charcode & 0x3F) | 0x80);
            }

            // Position 65536 - : four bytes for UTF-8 character encoding.
            if (charcode > 65535) {
                // First UTF byte: Mask the first three bits of charcode with binary 1111.0XXX:
                encoded = encoded + gethex((charcode >> 18) | 0xF0);
                // Second UTF byte: Get the next six bits of charcode and mask them binary 10XX.XXXX:
                encoded = encoded + gethex(((charcode >> 12) & 0x3F) | 0x80);
                // Third UTF byte: Get the last six bits of charcode and mask them binary 10XX.XXXX:
                encoded = encoded + gethex(((charcode >> 6) & 0x3F) | 0x80);
                // Fourth UTF byte: Get the last six bits of charcode and mask them binary 10XX.XXXX:
                encoded = encoded + gethex((charcode & 0x3F) | 0x80);
            }
        }
    }
    return encoded;
}

function callWebService(){
    var raw = document.getElementById("searchQuery").value;
    var productCode = document.getElementById("productCode").value;
    var encoded = encode(raw);
    document.location="http://ola.level7.ro/cross-search-client/searchClient?productId=" + productCode + "&query=" + encoded;
}

function callSearchFromURL(){
    var raw = document.getElementById("searchQuery").value;
    var productCode = document.getElementById("productCode").value;
    var encoded = encode(raw);
    var olaaa ="http://ola-cams.level7.ro/OLA-" + productCode + "/allTypesResults.jsf?q=" + encoded;
    window.open(olaaa,'searchForm','');
}

function resetValues(){
    document.getElementById("searchQuery").value = "";
    document.getElementById("productCode").value = "SGBIX";
}


function askUserLogin(linkelement, title) {



	//document.getElementById('globCont').className = "adon-globalDivContainerTrans";
	
	document.getElementById('ToolNor').style.top = (findPosY(linkelement)-200) + "px";
	document.getElementById('ToolNor').style.left = (findPosX(linkelement)-500)+"px";
	
	document.getElementById('ToolNorLink').href = linkelement.href;
	document.getElementById('ToolNorLink').title = "'" + title + "' �ber click & buy kaufen";
	
document.getElementById('ToolNor').style.display='block';

}

function askUserLoginTitle(linkelement, title) {



	//document.getElementById('globCont').className = "adon-globalDivContainerTrans";
	
	document.getElementById('ToolNor').style.top = (findPosY(linkelement)-200) + "px";
	document.getElementById('ToolNor').style.left = (findPosX(linkelement)+190)+"px";
	
	document.getElementById('ToolNorLink').href = linkelement.href;
	document.getElementById('ToolNorLink').title = "'" + title + "' &Uuml;ber click & buy kaufen";
	
document.getElementById('ToolNor').style.display='block';

}

function askUserLoginTitleJB(linkelement, title) {



	//document.getElementById('globCont').className = "adon-globalDivContainerTrans";
	
	document.getElementById('ToolNorJB').style.top = (findPosY(linkelement)-200) + "px";
	document.getElementById('ToolNorJB').style.left = "300px";
	
	new Effect.Appear(document.getElementById('ToolNorJB'));

}

function closeUserLoginJB(linkelement) {
	
	new Effect.Fade(document.getElementById('ToolNorJB'));
	
	//document.getElementById('globCont').className = "adon-globalDivContainer";

}

function closeUserLogin(linkelement) {
	
	new Effect.Fade(document.getElementById('ToolNor'));
	
	//document.getElementById('globCont').className = "adon-globalDivContainer";

}
// Dropdown funktion f�r den slot auf der Startseite von schulleitung.de
function dropdown_slot_homepage(){
	if (document.getElementById('steuern').sls.value == 'no_link'){
		document.getElementById('fehler').style.display = 'block';
	} else {
		window.location = document.getElementById('steuern').sls.value;
	}
}

function checkEzaCode(code) {
	//alert(code);
	if (code == 'WKYT912XM') {
		document.location.href="http://extraweb.wolterskluwer.de/eza/index.php?code="+code;
	}else {
		document.getElementById('codeerror').style.display = "block";
	}
}


function checkBSGCode(code) {
	//alert(code);
	if (code == 'WK8JK35VM') {
		document.location.href="http://extraweb.wolterskluwer.de/sgbv/db.php?code="+code;
	}else {
		document.getElementById('codeerror').style.display = "block";
	}
}

// PRODUCT CHECK AJAX
function checkCode(action_url, action_camsId, action_productid, action_portid) {
	if (action_productid != '') {
		Ext.apply(Ext.lib.Ajax.defaultHeaders,'Content-Type: text/xml;charset=utf-8');
		var conn = new Ext.data.Connection();
			conn.request({
				url: action_url,
				method: 'POST',
				params: { camsId : action_camsId, portid : action_portid,productid :  action_productid},
				waitMsg:'Bitte warten, der Kommentar wird gespeichert',
				success: function(responseObject) {
					//alert(responseObject.responseText);
					if (responseObject.responseText == 'success') {
						window.location.reload();
					} else {
						document.getElementById('code_empty_div').innerHTML = "Der Code ist nicht korrekt. Bitte geben Sie den Code erneut ein.";
						document.getElementById('code_empty_div').style.display = "block";
					}
				},
				failure: function() {
					document.getElementById('code_empty_div').innerHTML = "Der Code konnte nicht gepr&uuml;ft werden. Bitte versuchen Sie es gleich noch mal.";
					document.getElementById('code_empty_div').style.display = "block";
				}
			});
	} else {
		document.getElementById('code_empty_div').style.display = "block";
	}
}

// BEWARE: window.onload functions are called trough the whole website
function triggerEvents() {
	// Registrierung
	var inputNodes = document.getElementsByTagName("input");
	for (var i = 0; i < inputNodes.length; i++) {
		if (inputNodes[i].className == 'adon-form-input-normal') {
			inputNodes[i].onfocus = function() {
				this.className = 'adon-form-input-normal-focus';
			}
			inputNodes[i].onblur = function() {
				this.className = 'adon-form-input-normal';
			}
		}
		if (inputNodes[i].className == 'adon-form-input-small') {
			inputNodes[i].onfocus = function() {
				this.className = 'adon-form-input-small-focus';
			}
			inputNodes[i].onblur = function() {
				this.className = 'adon-form-input-small';
			}
		}
		if (inputNodes[i].className == 'adon-form-input-medium') {
			inputNodes[i].onfocus = function() {
				this.className = 'adon-form-input-medium-focus';
			}
			inputNodes[i].onblur = function() {
				this.className = 'adon-form-input-medium';
			}
		}
	}
	var selectNodes = document.getElementsByTagName("select");
	for (var i = 0; i < selectNodes.length; i++) {
		if (selectNodes[i].className == 'adon-form-select') {
			selectNodes[i].onfocus = function() {
				this.className = 'adon-form-select-focus';
			}
			selectNodes[i].onblur = function() {
				this.className = 'adon-form-select';
			}
		} else {
			selectNodes[i].className = 'adon-form-select';
			selectNodes[i].onfocus = function() {
				this.className = 'adon-form-select-focus';
			}
			selectNodes[i].onblur = function() {
				this.className = 'adon-form-select';
			}
		}
	}
	if (document.getElementById('terms_agb')) {
		document.getElementById('terms_agb').onmouseover = function() {
			this.className = 'adon-form-terms-hover';
		}
		document.getElementById('terms_agb').onmouseout = function() {
			this.className = 'adon-form-terms';
		}
	}
	if (document.getElementById('terms_kluwer_account')) {
		document.getElementById('terms_kluwer_account').onmouseover = function() {
			this.className = 'adon-form-terms-hover';
		}
		document.getElementById('terms_kluwer_account').onmouseout = function() {
			this.className = 'adon-form-terms';
		}
	}
	if (document.getElementById('terms_info')) {
		document.getElementById('terms_info').onmouseover = function() {
			this.className = 'adon-form-terms-hover';
		}
		document.getElementById('terms_info').onmouseout = function() {
			this.className = 'adon-form-terms';
		}
	}
	// search box
	if (document.getElementById('search_container') && document.getElementById('search_term')) {
	
		var isFocused=false;
	
		document.getElementById('search_term').onfocus =  function() {
			isFocused=true;
			document.getElementById('search_container').className = 'header-search-container-focused';
			this.className = 'adon-input-box-header-search-focused';
			if (this.value == 'Suche') {
				this.value = "";
			}
		}
		document.getElementById('search_term').onblur =  function() {
			isFocused=false;
			document.getElementById('search_container').className = 'header-search-container';
			this.className = 'adon-input-box-header-search';
			if (this.value == '') {
				this.value = "Suche";
			}
		}
		document.getElementById('form_search_hover').onmouseover =  function() {
			document.getElementById('search_container').className = 'header-search-container-hover';
		}
		document.getElementById('form_search_hover').onmouseout =  function() {
			if (isFocused) {
				document.getElementById('search_container').className = 'header-search-container-focused';
			} else {
				document.getElementById('search_container').className = 'header-search-container';
			}
			
		}
	}
}

function toggleDeliveryAdress() {
	if (document.getElementById('deliveryAddress').style.display == 'none') {
		document.getElementById('deliveryAddress').style.display = "block";
	} else {
		document.getElementById('deliveryAddress').style.display = "none";
	}
}

function checkInfoboxes() {
	if (document.getElementById('infooffer').checked === true) { 
		document.getElementById('infooffer_email').disabled = false;
		document.getElementById('infooffer_phone').disabled = false;
		document.getElementById('infooffer_smsmms').disabled = false;
		document.getElementById('infooffer_mail').disabled = false;
		document.getElementById('infooffer_fax').disabled = false;
		document.getElementById('infooffer_email').checked = true;
		document.getElementById('infooffer_phone').checked = true;
		document.getElementById('infooffer_smsmms').checked = true;
		document.getElementById('infooffer_mail').checked = true;
		document.getElementById('infooffer_fax').checked = true;
	} else {
		document.getElementById('infooffer_email').checked = false;
		document.getElementById('infooffer_phone').checked = false;
		document.getElementById('infooffer_smsmms').checked = false;
		document.getElementById('infooffer_mail').checked = false;
		document.getElementById('infooffer_fax').checked = false;
		document.getElementById('infooffer_email').disabled = true;
		document.getElementById('infooffer_phone').disabled = true;
		document.getElementById('infooffer_smsmms').disabled = true;
		document.getElementById('infooffer_mail').disabled = true;
		document.getElementById('infooffer_fax').disabled = true;
	}
}
window.onload = triggerEvents;