// julian mw JS
Array.prototype.search = function( value, strict ) {
	if( typeof value == "undefined" ) {
		return false;
	}
	var retVal = false;
	if( strict ) {
		for( key in this ) {
			if( this[key] === value ) {
				retVal = key;
				break;
			}
		}
	} else {
		for( key in this ) {
			if( this[key] == value ) {
				retVal = key;
				break;
			}
		}
	}
	return retVal;
}

//+ Jonas Raoni Soares Silva
//@ http://jsfromhell.com/classes/overloader [v1.0]
Overloader = function(){
	var f = function(args){
		var i, h = "#";
		for(i in args = [].slice.call(arguments))
			h += args[i].constructor;
		if(!(h = f._methods[h])){
			var x, j, k, m = -1;
			for(i in f._methods){
				for(j in args.length > (k = 0, x = f._methods[i][1]).length ? x : args)
					(args[j] instanceof x[j] || args[j].constructor == x[j]) && ++k;
				k > m && (h = f._methods[i], m = k);
			}
		}
		return h ? h[0].apply(f, args) : undefined;
	};
	f._methods = {};
	f.overload = function(f, args){
		this._methods["#" + (args = [].slice.call(arguments, 1)).join("")] = [f, args];
	};
	f.unoverload = function(args){
		return delete this._methods["#" + [].slice.call(arguments).join("")];
	};
	return f;
};



// ajax content
var reqObj = new Array();
// overload xmlhttpPost
xmlhttpPost = new Overloader;
xmlhttpPost.overload(function(URL, detail, id){
  var PostQuery = "detail=" + escape(detail) + "&id=" + id;
  xmlhttpPostRequest(URL, PostQuery, id)
}, String, String, String )
xmlhttpPost.overload(function(URL, detail, id, args){
  if(typeof args == 'string') {
    var PostQuery = "detail=" + escape(detail) + "&id=" + id + "&args=" + args;
    // alert("over: " + typeof args + " post: " + PostQuery)
  }
  xmlhttpPostRequest(URL, PostQuery, id)
}, String, String, String, String)

function xmlhttpPostRequest(URL, query, id) {
    var xmlHttpReq = false;
    // alert(query)
    // Mozilla/Safari
    if (window.XMLHttpRequest) {
        xmlHttpReq = new XMLHttpRequest();
    }
    // IE
    else if (window.ActiveXObject) {
        xmlHttpReq = new ActiveXObject("Microsoft.XMLHTTP");
    }
    reqObj[id] = xmlHttpReq;
    reqObj[id].open('POST', URL, true);
    reqObj[id].setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
    reqObj[id].onreadystatechange = function() {
        if (reqObj[id].readyState == 4) {
           document.getElementById(id).innerHTML = reqObj[id].responseText;
        }
    }
    self.reqObj[id].send(query);
}

// main
// ajax content wrapper
function setContent(where) {
  xmlhttpPost('SP_juliane-detail.php', where, 'text');
  xmlhttpPost('SP_juliane-detail.php', where, 'bild');
  setMenu(where);
}

// page
var myPage = false;
function setPage(where) {
  myPage = where;
}

// menu
var Menu = new Array;
// hier das menu definieren
Menu['index'] = new Array ('aktuell', 'archiv', 'tagebuch', 'termine');
Menu['uebermich'] = new Array ('steckbrief', 'werdegang', 'erfolge', 'autogramm');
Menu['fotos'] = new Array ('winter', 'sommer', 'privat');
Menu['partner'] = new Array ('sponsoren', 'ausruester', 'foerderer', 'dsv-sponsoren');
Menu['presse'] = new Array ('berichte', 'interviews', 'videos');
Menu['fanecke'] = new Array ('autogzwei', 'gaestebuch', 'links', 'glossar');
Menu['impressum'] = new Array ('impressum');
Menu['kontakt'] = new Array ('kontakt');
var myMenuItem = false;
function setMenu(where) {
  myMenuItem = where;
  document.getElementById(where).src =  'img/submenue/' + myMenuItem + '_o.jpg';
  setBar(myMenuItem);
  resetMenu();
}
// handle menu
function handleMenu(where, on) {
  if(on == 1) {
    document.getElementById(where).src = 'img/submenue/' + where + '_o.jpg';
    mergeBar(where);
  } else if (where != myMenuItem){
    document.getElementById(where).src = 'img/submenue/' + where + '.jpg';
    setBar(myMenuItem);
  }
}

// reset menu
function resetMenu() {
  MenuItems = Menu[myPage];
  for (var i = 0; i < MenuItems.length; i++) {
    var Item = MenuItems[i];
    if (Item != myMenuItem) {
      document.getElementById(Item).src = 'img/submenue/' + Item + '.jpg';
    }
    else {
      document.getElementById(Item).src = 'img/submenue/' + Item + '_o.jpg';
    }
  }
}

// strich
var Bar = new Array();
Bar[0] = new Array (0, 1, 1);
Bar[1] = new Array (0, 0, 1);
Bar[2] = new Array (1, 0, 0);
Bar[3] = new Array (1, 1, 0);
function setBar(where) {
  MenuItems = Menu[myPage];
  index = MenuItems.search(where);
  var to = (MenuItems.length < Bar[index].length) ? MenuItems.length : Bar[index].length
  for(var i = 0; i < to; i++) {
    myBar = "strich" + i;
    if(Bar[index][i] == 1) {
      document.getElementById(myBar).src = 'img/submenue/strich.jpg';
    } else {
      document.getElementById(myBar).src = 'img/submenue/strich_o.jpg';
    }
  }
}

function mergeBar(where) {
  MenuItems = Menu[myPage];
  SelectedIndex = MenuItems.search(myMenuItem);
  OverIndex = MenuItems.search(where);
  var to = (MenuItems.length < Bar[SelectedIndex].length) ? MenuItems.length : Bar[SelectedIndex].length
  for(var i = 0; i < to; i++) {
    myBar = "strich" + i;
    if(Bar[SelectedIndex][i] == 1 && Bar[OverIndex][i] == 1) {
      document.getElementById(myBar).src = 'img/submenue/strich.jpg';
    } else {
      document.getElementById(myBar).src = 'img/submenue/strich_o.jpg';
    }
  }
}

// gaestebuch
/*
 * boolean (Ja/Nein-Variable),
 * string (Zeichenkettenvariable),
 * number (numerische Variable),
 * function (Funktion),
 * object (Objekt),
 * undefined (unbestimmter Typ).
*/

function getGBSubmit() {
    var gbaction = "submit"
    var gbargs = ""
    var gberror = "Bitte angeben:"
    /* if(typeof document.getElementById("number").value == 'string' && document.getElementById("number").value.length > 1) {
      gbargs = gbargs + '&number=' + escape(document.getElementById("number").value)
    } else {
      gberror = gberror + ' Captcha'
    }
    */
    if(typeof document.getElementById("name").value == 'string' && document.getElementById("name").value.length > 1) {
      gbargs = gbargs + '&name=' + escape(document.getElementById("name").value)
    } else {
      gberror = gberror + ' Name'
    }
    if(typeof document.getElementById("email").value == 'string' && document.getElementById("name").value.length > 1) {
      gbargs = gbargs + '&email=' + escape(document.getElementById("email").value)
    }
    if(typeof document.getElementById("page").value == 'string' && document.getElementById("page").value.length > 0) {
      gbargs = gbargs + '&page=' + escape(document.getElementById("page").value)
    }
    if(typeof document.getElementById("eintrag").value == 'string' && document.getElementById("eintrag").value.length > 1) {
      gbargs = gbargs + '&eintrag=' + escape(document.getElementById("eintrag").value)
    } else {
      gberror = gberror + ' Gästebucheintrag'
    }
    if(gberror != "Bitte angeben:") {
       gbaction = "fail"
       alert(gberror)
    }
    return gbaction + gbargs
}

function getGBPage(page, dir) {
    var gbaction = "page"
    gbaction = gbaction + '&page=' + escape(page) + '&dir=' + escape(dir)
    return gbaction
}
