/* 
 *       |----------------------------------------|
 *       | SYSTEM 2                               |
 *       |----------------------------------------|
 *       | Copyright Marcel Kost                  |
 *       | SCRIPT.JS                              |
 *       |----------------------------------------|
 */

// Form Functions

function showObject(id) {
	$("#" + id).css("display", "block");
}

function hideObject(id) {
	$("#" + id).css("display", "none");
}

function changeInnerHTML(id, content) {
	$("#" + id).html(content);
}

function limitText(limitField, limitNum) {
    if (limitField.value.length > limitNum) {
        limitField.value = limitField.value.substring(0, limitNum);
    } 
}

$(".d, .h").bind("contextmenu", function(e) {
	alert("Hello World!");
	$(this).slideToggle("slow");
	
	// TODO HIER!
    	
	return false;
});

function showContextMenu(id, event) {
	var pos = getMouseXY(event);
	document.getElementById(id).style.position = "absolute";
	document.getElementById(id).style.top = pos.y  + "px";
	document.getElementById(id).style.left = pos.x  + "px";
	
	hideAllContextMenus();
	
	document.getElementById(id).style.display = "block";
}

function hideAllContextMenus() {
	var elements = document.getElementsByClassName("contextmenu");
	for(var i = 0;i < elements.length;i++){
		elements[i].style.display = "none";
	}
}

document.onclick = function(e) {
	/*if(!e) e = window.event;
	var obj = e.target ? e.target : e.srcElement ? e.srcElement : null;
	alert(obj.classList);
	if(!obj.classList.contains("contextmenu_hide")) hideAllContextMenus();*/
	
	return true;
	hideAllContextMenus()
}

// Object Functions

function toggleObject(id) {
	$(id).toggle();
}

function toggleSlide(objname) {
	$("#" + objname).slideToggle("slow");
}

// Initialisize on Startup

function init() {
	form_setFocus();
	
	siteinit();
}

// Form Functions

function form_submit(id) {
	start_loading();
	var form_submit_id = id + "_submit";
	document.getElementById(form_submit_id).disabled = "disabled";
}

function form_setFocus() {    
    var elements = document.getElementsByClassName("autofocus");
    if (elements.length > 0) {
    	elements[0].focus();
    }
}

function htmlspecialchars(string, index){
    var anArray = new Array(2);
    anArray[0] = new Array("Ö", "ö", "Ä", "ä", "Ü", "ü", "ß");
    anArray[1] = new Array("Oe", "oe", "Ae", "ae", "Ue", "ue", "sz");
    
    for (var i=0; i<anArray[index].length; i++){
        myRegExp = new RegExp(anArray[index][i],"g");
        string = string.replace(myRegExp, anArray[(index==0?1:0)][i]);
    }
    return string;
}

//Other Functions

document.getElementsByClassName = function(clsName){
 var retVal = new Array();
 var elements = document.getElementsByTagName("*");
 for(var i = 0;i < elements.length;i++){
     if(elements[i].className.indexOf(" ") >= 0){
         var classes = elements[i].className.split(" ");
         for(var j = 0;j < classes.length;j++){
             if(classes[j] == clsName)
                 retVal.push(elements[i]);
         }
     }
     else if(elements[i].className == clsName)
         retVal.push(elements[i]);
 }
 return retVal;
}

var keypress = new Array('#', '#', '#', '#', '#', '#', '#', '#', '#', '#');

function keyPressed (EventGet) {
    if (!EventGet) {
        EventGet = window.event;
    }
    
    if (EventGet.which > 47 && EventGet.which < 59) {
        var keypress_value = EventGet.which - 48;
        if (keypress[keypress_value] !== "#") {
            var url = SearchAjaxRequestAction + "&id=" + keypress[keypress_value];
            self.location.href = url;
        }
    }
}

function getMouseXY(ev) {
  var pos = new Array();
  if(ev.pageX){
    pos.x = ev.pageX;	
    pos.y = ev.pageY;
  } else if(window.event && window.event.clientX) {
    var isStrictMode = document.compatMode 
        && document.compatMode != 'BackCompat' ? true : false;
    var scrollX = isStrictMode ? 
        document.documentElement.scrollLeft : document.body.scrollLeft;
    var scrollY	= isStrictMode ? 
        document.documentElement.scrollTop : document.body.scrollTop;
    pos.x = window.event.clientX + scrollX;
    pos.y = window.event.clientY + scrollY;
  }
  return pos;
}

function email(obj) {
	var output = "mailto:";
	for (var i=0 ;i < obj.children.length; i++) {
		var span = obj.children[i]
		output += span.innerHTML;
	}
	location.href = output;
}

// Gallery

var currentpicture = 0;

function showpicture(num) {
	$("#picture").attr("src", "images/black.png");
	
	var num_prev = 0;
	var num_next = 0;
	
	if (num === 'next') {
		if (currentpicture === ((Pictures.length)-1)) {
			num = 0;
		} else {
			num = (currentpicture)+1;
		}
	} else if (num === 'prev') {
		if (currentpicture < 1) {
			num = (Pictures.length)-1;
		} else {
			num = (currentpicture)-1;
		}
	}
	
	if (Pictures.length < 2) {
		num_prev = 0;
		num_next = 0;
	} else if (Pictures.length < 3) {
		num_prev = 0;
		num_next = 1;
	} else if (num === 0) {
		num_prev = ((Pictures.length)-1);
		num_next = 1;
	} else if (num === ((Pictures.length)-1)) {
		num_prev = num-1;
		num_next = 0;
	} else {
		num_prev = num-1;
		num_next = num+1;
	}
	
	currentpicture = num;
	document.getElementById('picture').src = Pictures[num][1];
	document.getElementById('picture_layer_box').style.maxHeight = (Pictures[num][3]+60) + "px" ;

	document.getElementById('picture_layer_title').innerHTML = Pictures[num][4];
	document.getElementById('picture_layer_info').innerHTML = Pictures[num][5];
	
	if (num < 1) {
		document.getElementById('picture_layer_prev').href = 'javascript:showpicture(' + (Pictures.length-1) + ')';
	} else {
		document.getElementById('picture_layer_prev').href = 'javascript:showpicture(' + (num-1) + ')';
	}
	

	if (num == (Pictures.length-1)) {
		document.getElementById('picture_layer_next').href = 'javascript:showpicture(0)';
	} else {
		document.getElementById('picture_layer_next').href = 'javascript:showpicture(' + (num+1) + ')';
	}
	
	//document.getElementById('picture_layer').style.display = 'block';
	//document.getElementById('picture_layer_box').style.display = 'block';
	$("#picture_layer_box").show(1);
	$("#picture_layer").fadeIn("slow");
	
	document.getElementById('picture_preload_1').src = Pictures[num_prev][1];
	document.getElementById('picture_preload_2').src = Pictures[num_next][1];
}

document.onkeydown = function(event) {
	if (document.getElementById('picture_layer')) {
		if (document.getElementById('picture_layer').style.display === 'block' && event.keyCode == 37) {
			event.cancelBubble = true;
			event.returnValue = false;
			showpicture('prev');
		} else if (document.getElementById('picture_layer').style.display === 'block' && event.keyCode == 39) {
			event.cancelBubble = true;
			event.returnValue = false;
			showpicture('next');
		}
	} else {
		event.returnValue = true;
	}
	
	return event.returnValue;
}

// Facebook

function insertLikeButton(url) {
	var container = document.getElementById("fbLikeButton");
	var width = container.style.width;
	var height = container.style.height;
	var fbURL = "http://www.facebook.com/plugins/like.php?app_id=194518967282284&href=" + escape(url) + "&send=false&layout=standard&width=" + width + "&show_faces=true&action=like&colorscheme=light&font&height=80";
	var fbFrame = document.createElement("IFRAME");
	fbFrame.setAttribute("src", fbURL);
	fbFrame.setAttribute("scrolling", "no");
	fbFrame.setAttribute("frameBorder", 0);
	fbFrame.setAttribute("allowTransparency", true);
	fbFrame.style.border = "none";
	fbFrame.style.overflow = "hidden";
	fbFrame.style.width = width;
	fbFrame.style.height = height;
	container.replaceChild(fbFrame, document.getElementById('fbl'));
}

