//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
		        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 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;
