﻿var NavigationObjHover = new Array();
var NavigationObjShow = new Array();
var Navigation = {
    ShowDelayMS: 400,
    HideDelayMS: 400,
    Show: function(ObjBtn) {
        NavigationObjHover.push(ObjBtn);
        window.setTimeout(this.ShowDelayed, this.ShowDelayMS);
    },
    Hide: function(ObjBtn) {
        NavigationObjHover.pop();
        window.setTimeout(this.HideDelayed, this.HideDelayMS);
    },
    ShowDelayed: function() {
        for (var i = 0; i < NavigationObjHover.length; i++) {
            if (NavigationObjShow.indexOf(NavigationObjHover[i]) == -1) {
                NavigationObjShow.push(NavigationObjHover[i]);
                NavigationObjHover[i].className = 'active';
                break;
            }
        }
    },
    HideDelayed: function() {
        for (var i = NavigationObjShow.length-1; i > -1; i--) {
            if (NavigationObjHover.indexOf(NavigationObjShow[i]) == -1) {
                NavigationObjShow[i].className = '';
                NavigationObjShow.splice(i, 1);
                break;
            }
        }
    }
};

var FL_FIELDVALUE_EMAIL = "Email-Adresse";
var FL_FIELDVALUE_PASSWD = "Passwort";
function FastLoginValidate(Obj_Ref, action) {
    var Obj_Email = document.getElementById("FL_Email");
    var Obj_Passwd = document.getElementById("FL_Password");
    var Obj_PasswdEmpty = document.getElementById("FL_PasswordEmpty");
    var Obj_POSTACTION = document.getElementById("POSTACTION");
    switch (Obj_Ref) {
        case Obj_Email:
            switch (action) {
                case "focus":
                    if (Obj_Ref.value == FL_FIELDVALUE_EMAIL) {
                        Obj_Ref.value = "";
                        Obj_Ref.className = "";
                    }
                    break;
                case "blur":
                    if (Obj_Ref.value.trim() == "") {
                        Obj_Ref.value = FL_FIELDVALUE_EMAIL;
                        Obj_Ref.className = "empty";
                    }
                    break;
            }
            break;
        case Obj_Passwd:
            switch (action) {
                case "keyup":
                    document.onkeyup = function(event) {
                        if (!event)
                            event = window.event;
                        if (event.which) {
                            code = event.which;
                        } else if (event.keyCode) {
                            code = event.keyCode;
                        }
                        if (code == 13) {
                            Obj_POSTACTION.value = "login";
                            document.aspnetForm.submit();
                            return false;
                        }
                    };
                    break;
                case "blur":
                    if (Obj_Ref.value.trim() == "") {
                        Obj_Ref.className = "hidden";
                        Obj_PasswdEmpty.className = "empty";
                    }
                    document.onkeyup = "";
                    Obj_POSTACTION.value = "login";
                    break;
            }
            break;
        case Obj_PasswdEmpty:
            switch (action) {
                case "focus":
                    Obj_Ref.className = "hidden";
                    Obj_Passwd.className = "";
                    Obj_Passwd.focus();
                    break;
            }
            break;
    }
}

addLoadEventHandler = function(func) {
    var previous_handler = window.onload;
    if (typeof window.onload != "function") 
        window.onload = func;
    else window.onload = function() {
        previous_handler();
        func();
    }
}

function Show(Obj_ID) {
    var obj = document.getElementById(Obj_ID);
    obj.className = obj.className.replace(" hidden", "").replace("hidden", "");
}

function Hide(Obj_ID) {
    var obj = document.getElementById(Obj_ID);
    obj.className += (obj.className!="") ? " hidden" : "hidden";
}

function ContentNavToggle(Obj_Ref, altGoTo, altP1) {
    var cn = document.getElementById("CONTENT_NAVIGATION");
    var lis = cn.getElementsByTagName("td");
    var kl = cn.getAttribute("name").split("|");
    if (!Obj_Ref && altGoTo) {
        Obj_Ref = lis[altGoTo].getElementsByTagName("a")[0];
    } else if (!Obj_Ref && !altGoTo && altP1) {
        if (kl.indexOf(altP1) == -1) {
            Obj_Ref = lis[0].getElementsByTagName("a")[0];
        } else {
            Obj_Ref = lis[kl.indexOf(altP1)].getElementsByTagName("a")[0];
        }
    }
    for (var i = 0; i < lis.length; i++) {
        var td = lis[i];
        var btn = td.getElementsByTagName("a")[0];
        var content = document.getElementById("ctl00_CPH_Content_PL_" + kl[i].toUpperCase());
        if (btn == Obj_Ref) {
            td.className = "active";
            if (content) content.className = "";
        } else {
            td.className = "";
            if (content) content.className = "hidden";
        } 
    }
}

function ValidEmail(email) {
    var rx = /^([^\s@,:"<>]+)@([^\s@,:"<>]+\.[^\s@,:"<>.\d]{2,}|(\d{1,3}\.){3}\d{1,3})$/;
    return email.match(rx);
}

String.prototype.trim = function(clist) {
    if (clist) {
        return this.ltrim(clist).rtrim(clist);
    } else {
        return this.ltrim().rtrim();
    }
};
String.prototype.ltrim = function(clist) {
    if (clist) {
        return this.replace(new RegExp('^[' + clist + ']+'), '');
    } else {
        return this.replace(/^\s+/, '');
    }
};
String.prototype.rtrim = function(clist) {
    if (clist) {
        return this.replace(new RegExp('[' + clist + ']+$'), '');
    } else {
        return this.replace(/\s+$/, '');
    }
};

if (!Array.indexOf) {
    Array.prototype.indexOf = function(obj) {
        for (var i = 0; i < this.length; i++)
            if (this[i] == obj)
                return i;
        return -1;
    }
}

function getElementsByClass(searchClass, node, tag) {
    var ret = new Array();
    var tag = tag || "*";
    var node = node || document;
    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)) {
            ret[j] = els[i];
            j++;
        }
    }
    return ret;
}

function validationResponse(fld, success, msg, prefix) {
    var valResp = document.getElementById("V_" + fld.id.replace(prefix, ""));
    switch (success) {
        case 1:
            valResp.className = "validate-success";
            break;
        case 2:
            valResp.className = "validate-empty";
            break;
        default:
            valResp.className = "validate-failed";
            break;
    }
}

function validationSetBtn(frmObjID, submitObjID) {
    var frmObj = document.getElementById(frmObjID); 
    var submitObj = document.getElementById(submitObjID);
    submitObj.disabled = (getElementsByClass("validate-failed", frmObj, "div").length < 1) ? "" : "disabled";
}

function SetUniqueRadioButton(nameregex, current) {
    re = new RegExp(nameregex);
    for (i = 0; i < document.forms[0].elements.length; i++) {
        elm = document.forms[0].elements[i]
        if (elm.type == 'radio') {
            if (re.test(elm.name)) {
                elm.checked = false;
            }
        }
    }
    current.checked = true;
}

var FL_FIELDVALUE_SEARCH = "Zeitschrift / Stichwort";
function SearchFieldAction(objSearch, strAction) {
    switch (strAction) {
        case "focus":
            if (FL_FIELDVALUE_SEARCH == objSearch.value.trim()) {
                objSearch.value = "";
                objSearch.className = "search";
            }
            break;
        case "blur":
            if (objSearch.value.trim() == "") {
                objSearch.value = FL_FIELDVALUE_SEARCH;
                objSearch.className = "search validate-empty";
            }
            break;
        case "keyup":
            document.onkeyup = function(event) {
                if (!event)
                    event = window.event;
                if (event.which) {
                    code = event.which;
                } else if (event.keyCode) {
                    code = event.keyCode;
                }
                if (code == 13 && objSearch.value.trim() != "") {
                    window.location.href = SYS_URL_SEARCH + objSearch.value;
                } else {
                    SearchGetKeywords(objSearch.value);
                }
            };
            break;
		case "submit":
			if (objSearch.value != FL_FIELDVALUE_SEARCH) {
				window.location.href = SYS_URL_SEARCH + objSearch.value;
			}
            break;
    }
};

function SearchGetKeywords(searchString) {
    Presseplus.Services.Keywords.Get(searchString, SearchGetKeywords_Completed);
};

function SearchGetKeywords_Completed(results) {
    var objResult = document.getElementById("SearchKeywords");
    var listResult = results.toString().split(',');
    objResult.style.display = 'none';
    objResult.innerHTML = null;
    if (listResult.length > 0) {
        var htmlString = '';
        var keyword = '';
        for (var i = 0; i < listResult.length; i++) {
            keyword = listResult[i].trim();
			//encodeURIComponent
            if (keyword != '') {
                htmlString += '<li><a href="' + SYS_URL_SEARCH + encodeURIComponent(keyword) + '">' + keyword + '</a></li>';
            } 
        }
        objResult.innerHTML = '<ul>' + htmlString + '</ul>';
        objResult.style.display = 'block';
    }
};

var Utf8 = {
	encode : function (string) {
		string = string.replace(/\r\n/g,"\n");
		var utftext = "";
		for (var n = 0; n < string.length; n++) {
			var c = string.charCodeAt(n);
			if (c < 128) { utftext += String.fromCharCode(c); }
			else if((c > 127) && (c < 2048)) { utftext += String.fromCharCode((c >> 6) | 192); utftext += String.fromCharCode((c & 63) | 128); }
			else { utftext += String.fromCharCode((c >> 12) | 224); utftext += String.fromCharCode(((c >> 6) & 63) | 128); utftext += String.fromCharCode((c & 63) | 128); }
		}
		return utftext;
	},
	decode : function (utftext) {
		var string = "";
		var i = 0;
		var c = c1 = c2 = 0;
		while ( i < utftext.length ) {
			c = utftext.charCodeAt(i);
			if (c < 128) { string += String.fromCharCode(c); i++; }
			else if((c > 191) && (c < 224)) { c2 = utftext.charCodeAt(i+1); string += String.fromCharCode(((c & 31) << 6) | (c2 & 63)); i += 2; }
			else { c2 = utftext.charCodeAt(i+1); c3 = utftext.charCodeAt(i+2); string += String.fromCharCode(((c & 15) << 12) | ((c2 & 63) << 6) | (c3 & 63)); i += 3; }
		}
		return string;
	}
}