//majd ide jon az onload esemenyek
$(function() {
	initAjaxDelete();
});


function callAjax(name, method, contextId, params, event, fnName, respType, fnToExec) {



	if(document.getElementById('adminMessage')) animatedcollapse.toggle('adminMessage');


	var paramsdata = new String();
	var event = event || false;
	var respType = respType || "htmla";
	var fnName = fnName || false;
	var fnToExec = fnToExec || false;

	if (params.length > 0) {
		for (var n = 0; n < params.length; n++)	{
			paramsdata += "&params[]=" + params[n];
		}
	}
	if (!testObj(contextId)) contextId = $(contextId);
	return jQuery.ajax({
	    url: "/ajax",
	    type: "POST",
	    data: "name=" + name + "&method=" + method + "&resp=" + respType + paramsdata,
	    context: $(contextId),
   	    success: function(resp) {
	        if (event != false) { //eventre felprogramozott, akkor fut be ide
				if (resp == true) {
					$(this).parent().parent().parent().remove();
				} else if (resp == false) {
				    console.log('false');
				} else {
					alert(resp);
				}
	        } else { //nem event, ha van fnName azt futtatjuk, ha nincs, akkor append
				resp = resp.replace("\n", "");
		        if (fnName != false) {
			    		setTimeout(fnName + "('" + resp + "')", 1);
			    } else {
					if (respType == "htmla") {
						$(contextId).append(resp);
					} else if (respType == "htmli") {
					    document.getElementById(contextId.substring(1)).innerHTML = resp;  //faszom IE miatt kell nativ js ide, kulonben nem teszi bele a resultot... :(
					    if(fnToExec != false) setTimeout(fnToExec + "()", 1);
						//$(contextId).html(resp);
					} else if (respType == "json") { //jsonra kell fnName, amivel json obj-ot feldolgozzuk
						//alert("json hivas, fnName missed!");
					}
				}
			}
			if(document.getElementById('adminMessage')) animatedcollapse.toggle('adminMessage');
	    }
	});
}

function testObj(obj) {
	var type = typeof obj;
	if (type == 'object') {
		if (obj.getDate) return 'Date';
		if (obj.split) return 'String';
	}
	return type;
}

function jsCalAdd(name, trigger, showTime) {
	if(showTime && showTime == true) timeformat = " %H:%M";
	else timeformat = "";
	var varname = name + "Calendar";
	var trigger = trigger || name;
	var varname = Calendar.setup({
    	inputField : name,
    	trigger    : trigger,
		showTime   : showTime,
		dateFormat : "%Y-%m-%d"+timeformat,
		hideOnOverlayClick : true,
    	onSelect   : function() { this.hide() }
	});
}

function initAjaxDelete() {
	$('img[ev*=delete]').click(function() {
		var confQ = confirm("Are you sure?");
		if (confQ == true) {
		    var eventStr = this.getAttribute("ev");
		    if (eventStr != "") {
		    	var eventA = eventStr.split(" ");

				params = new Array();
				for (var n = 2; n < eventA.length; n++)	{
					params.push(eventA[n]);
				}
		    	res = callAjax(eventA[0], eventA[1], this, params, params, 'event');
		    }
		    return false;
		} else return false;
		});
}

function delegateAsAjaxEvent(selector) {
	html.on("click", function(ev) {
		this.ajaxEvent()('click', [ev], selector);
	}.bind(this));
}

function ajaxEvent() {
	var handler = this;
	return function(event) {
		var src = Event.element(event);
		var params = src.getAttribute("event").split(" ");
		return handler.apply(src, [params[0], params[1], params.slice(2)]);
	}
}


//rating begin

var rateTitle = '';
var newRateValue = '';

function setRateValue(value, prefix){
	if(value < 0) {
		value = value * -1;
	} else {
		if(newRateValue != '')
			value = newRateValue;
	}
	width = Math.ceil((102/5)*value);
	document.getElementById(prefix+"_rateValueIndicator").style.width = width + "px";
	document.getElementById(prefix+"_rating_value").innerHTML = value;
	if (rateTitle != '')
		document.getElementById(prefix+"_rating_title").innerHTML = rateTitle;
	document.getElementById(prefix+"_rating_process_indicator").style.display = "none";
}

function postRate(value, prefix){
	document.getElementById(prefix+"_rating_process_indicator").style.display = "block";
	rateTitle = document.getElementById(prefix+"_rating_title").innerHTML;
	document.getElementById(prefix+"_rating_title").innerHTML = "";
	document.getElementById(prefix+"_rating_value").innerHTML = "";

	callAjax("rating", "setRating", this, [value, prefix], false, "parseRateResponse", "json");
}

function parseRateResponse(data){
	if(data){
		var obj = jQuery.parseJSON(data);
		newRateValue = obj.value;
		setRateValue(obj.value, obj.prefix);
	}
}

//rating end


function setReminder(id){
    getObj('loader_indicator_'+id).style.display = 'block';
	callAjax("reminder", "addReminder", '#reminder_section_'+id, [id], false, "", "htmli");
}

function unsetReminder(id, response){
	if(response == undefined || response != 'no' ){
	    getObj('loader_indicator_'+id).style.display = 'block';
		callAjax("reminder", "removeReminder", '#reminder_section_'+id, [id], false, "", "htmli");
	} else {
        callAjax("reminder", "removeReminder", '', [id], false, "", "json");
	}
}





function getObj(id){
	return document.getElementById(id);
}


function setFancyHref(obj){

    browserWidth = pageHeight();

	if(browserWidth > 900)
	    sizeId = '960';
    else if(browserWidth > 700)
	    sizeId = '768';
	else
	    sizeId = '600';


    filename = obj.href.substring(0, obj.href.length - 4);
	ext = obj.href.substring(obj.href.length - 4, obj.href.length);

	obj.href = filename.split("_-_")[0]+"_-_"+sizeId+ext;
}

function setFancyHref2(id){

	obj= document.getElementById(id);

    browserWidth = pageHeight();

	if(browserWidth > 900)
	    sizeId = '960';
    else if(browserWidth > 700)
	    sizeId = '768';
	else
	    sizeId = '600';


    filename = obj.href.substring(0, obj.href.length - 4);
	ext = obj.href.substring(obj.href.length - 4, obj.href.length);

	obj.href = filename.split("_-_")[0]+"_-_"+sizeId+ext;
}


function pageWidth() {return window.innerWidth != null? window.innerWidth : document.documentElement && document.documentElement.clientWidth ?       document.documentElement.clientWidth : document.body != null ? document.body.clientWidth : null;}
function pageHeight() {return  window.innerHeight != null? window.innerHeight : document.documentElement && document.documentElement.clientHeight ?  document.documentElement.clientHeight : document.body != null? document.body.clientHeight : null;}
function posLeft() {return typeof window.pageXOffset != 'undefined' ? window.pageXOffset :document.documentElement && document.documentElement.scrollLeft ? document.documentElement.scrollLeft : document.body.scrollLeft ? document.body.scrollLeft : 0;}
function posTop() {return typeof window.pageYOffset != 'undefined' ?  window.pageYOffset : document.documentElement && document.documentElement.scrollTop ? document.documentElement.scrollTop : document.body.scrollTop ? document.body.scrollTop : 0;}
function posRight() {return posLeft()+pageWidth();}
function posBottom() {return posTop()+pageHeight();}


function showCommentReply(id){
	document.getElementById("comment_reply_"+id).style.display="block";
}
function hideCommentReply(id){
	document.getElementById("comment_reply_"+id).style.display="none";
}
function hideNewComment(){
    document.getElementById("comment_new").style.display="none";
}

function clearTextarea(id, defaultMsg) {
    if(document.getElementById(id).value == defaultMsg) {
        document.getElementById(id).value = '';
    }

}
function resetTextarea(id, defaultMsg) {

    if($.trim(document.getElementById(id).value) == '') {
        document.getElementById(id).value = defaultMsg;
    }
}
function setTextarea(id, defaultMsg) {
    document.getElementById(id).value = defaultMsg;
}

function ismaxlength(obj){
	var mlength=obj.getAttribute? parseInt(obj.getAttribute("maxlength")) : ""
	if (obj.getAttribute && obj.value.length>mlength)
		obj.value=obj.value.substring(0,mlength)
}

function externalLinks() {
 if (!document.getElementsByTagName) return;
 var anchors = document.getElementsByTagName("a");
 for (var i=0; i<anchors.length; i++) {
   var anchor = anchors[i];
   if (anchor.getAttribute("href") &&
       anchor.getAttribute("rel") == "external")
     anchor.target = "_blank";
 }
}
window.onload = externalLinks;







//QUIZ

	function toggleQuizRules(){
	    if($('#quiz_rules').css('display') == 'none'){
	        $('#quiz_rules').show();
	    } else {
	        $('#quiz_rules').hide();
	    }
	}



	// HEADER STUFF
	ie5 = (document.all && document.getElementById);
	ns6 = (!document.all && document.getElementById);
	opacIn = 0;

	function fadeIn(divName) {

		id = document.getElementById(divName);

		if(opacIn!= 100){
			opacIn++;
			if(ie5) id.filters.alpha.opacity = opacIn;
			if(ns6) id.style.MozOpacity = opacIn/100;
			setTimeout('fadeIn("'+divName+'")', 10);
		}
	}


	function showLoginBox(){

		$('#login_box').css({display: 'block'});
		fadeIn('login_box');

		showOverflow();

		scroll(0,0);
	}

	function showLanguageSelector(){
	    $('#available_language_header_container').css("display", "block");
	}
	function hideLanguageSelector(){
	    $('#available_language_header_container').css("display", "none");
	}

	function hideLoginBox(){
		$('#login_box').css({display: 'none'});
		hideOverflow();
		opacIn = 0;
	}

	function showOverflow(){
		$('#overlay').css({display: 'block'});
		$('#overlay').height($('body').height());
		$('#overlay').width($(document).width());
	}

	function hideOverflow(){
		$('#overlay').height(0);
	}






function strtruncate(string, leng) {

    needPoints = false;

    if(string.length > leng) needPoints = true;

	string = string.substr(0,leng);

	if(needPoints == true) string += "...";

	return string;

}




function setCookie(c_name,value,expiredays){
	var exdate=new Date();
	exdate.setDate(exdate.getDate()+expiredays);
	document.cookie=c_name+ "=" +escape(value)+
	((expiredays==null) ? "" : ";expires="+exdate.toUTCString());
}


function getCookie(c_name){
	if (document.cookie.length>0){
		c_start=document.cookie.indexOf(c_name + "=");
		if (c_start!=-1){
			c_start=c_start + c_name.length+1;
			c_end=document.cookie.indexOf(";",c_start);
			if (c_end==-1) c_end=document.cookie.length;
			return unescape(document.cookie.substring(c_start,c_end));
		}
	}
	return "";
}



function setScheduleAdd(){
	$("#schedule_add_response").html('<img style="margin:10px 0 0 10px" src="/images/ajax-loader.gif" />');
	id = $("#schedule_add_id").html();
    timestamp = $("#schedule_add_date").html();
    callAjax("schedule", "setScheduleAdd", "#schedule_add_response", [id, timestamp], false, "", "htmli");
}

function setScheduleRemove(id){
	$('#delete_indicator_'+id).css({display: 'inline'});
    callAjax("schedule", "setScheduleRemove", "", [id], false, "hideCustomScheduleEvent", "json");
}

function hideCustomScheduleEvent(data){
	id = data.substr(1,data.length-2);
    unsetReminder(id, 'no');
    $('#'+ id).toggle('hide');
    return false;
}

function initAnimatedcollapse(){

	animatedcollapse.init();
}

function headerSearchSubmit(defaultText){
	if(document.getElementById('header_search_keyword').value!=defaultText && document.getElementById('header_search_keyword').value.length > 2){
	    document.headersearch.submit();
	}
}
