var wl = window.location.href;

if (wl.indexOf("localhost") == -1) {
	var wwwroot = 'http://www.kit.hr/';
} else {
	var wwwroot = 'http://localhost/kit/';
}


var DomLoaded =
{
	onload: [],
	loaded: function()
	{		
		if (arguments.callee.done) return;
		arguments.callee.done = true;
		for (i = 0;i < DomLoaded.onload.length;i++) DomLoaded.onload[i]();
	},
	load: function(fireThis)
	{		
		this.onload.push(fireThis);
		if (document.addEventListener) 
			document.addEventListener("DOMContentLoaded", DomLoaded.loaded, null);
		if (/KHTML|WebKit/i.test(navigator.userAgent))
		{ 
			var _timer = setInterval(function()
			{
				if (/loaded|complete/.test(document.readyState))
				{
					clearInterval(_timer);
					delete _timer;
					DomLoaded.loaded();
				}
			}, 10);
		}
		/*@cc_on @*/
		/*@if (@_win32)
		var proto = "src='javascript:void(0)'";
		if (location.protocol == "https:") proto = "src=//0";
		document.write("<scr"+"ipt id=__ie_onload defer " + proto + "><\/scr"+"ipt>");
		var script = document.getElementById("__ie_onload");
		script.onreadystatechange = function() {
		    if (this.readyState == "complete") {
		        DomLoaded.loaded();
		    }
		};
		/*@end @*/
	   window.onload = DomLoaded.loaded;
	}
};

var jQueryUpload = {
	
	ajaxFileUpload: function ()
	{
		
		
		$("#loading")
		.ajaxStart(function(){
			$(this).show();
		})
		.ajaxComplete(function(){
			$(this).hide();
		});
		
		$.ajaxFileUpload
		(
			{
				url:'http://localhost/kit/ajax/doajaxfileupload.php',
				secureuri:false,
				fileElementId:'image',
				dataType: 'json',
				success: function (data, status)
				{
					if(typeof(data.error) != 'undefined')
					{
						if(data.error != '')
						{
							alert(data.error);
						}else
						{
							alert(data.msg);
						}
					}
				},
				error: function (data, status, e)
				{
					alert(e);
				}
			}
		)		
		return false;
	}		
};

var Kit = {		
	
	root: wwwroot,
	getAllTags: function(){return Kit.allTags()},
        
	init: function(){	
		
		var p = Kit.crass('editable');
		var l = p.length;
		var comment_link = Kit.tag('a', Kit.$('komentari'));
		var add_new_link = Kit.$('add_new');
		var new_article_holder = Kit.$('new_article');
		var delete_links = Kit.crass('delete_link');		
				
		if(Kit.tag('h2', Kit.$('gornjitekst'))[0]) var txt_title = Kit.tag('h2', Kit.$('gornjitekst'))[0].innerHTML;
		var all_txt_tags = Kit.tag('a', Kit.crass('opsirnije', Kit.$('gornjitekst'))[0]);
		var tl = all_txt_tags.length;
		var txt_tags = '';
		
		for(x=0;x<tl;x++){
			txt_tags += (all_txt_tags[x].innerHTML) + ' ';	
		}
		
				
		for(x=0;x<l;x++){
			
			var tgtObj = p[x];			
			
			p[x].ondblclick = function(){				
				
				if(this.innerHTML.indexOf("textarea") == -1) {
					var oldHTML  = this.innerHTML.trim()
					
					var articleImg = Kit.tag('img', Kit.$('edit_area'))[0];
					var public_flagger = Kit.tag('span', Kit.$('edit_area'))[0];
					if(articleImg) articleImg.className = '';
					
					/*text_to_edit = this.innerHTML.replace(/<br>/g, '');					
					text_to_edit = text_to_edit.trim()*/
					text_to_edit = Kit.$('textile').innerHTML;
					
					if(public_flagger.innerHTML == 1) public_checked = 'checked';
					else public_checked = '';
					this.innerHTML = '<div id="forma"><form id="edit_form" name="edit_form" method="post" action="'+Kit.root+'ajax/ajax_edit.php" enctype="multipart/form-data"><input type="hidden" name="id" value="'+Kit.url_param('last')+'" /><fieldset><label for="title">Ime članka </label><br /><input name="title" type="text" class="glavnaForma" value="' + txt_title + '"/><br /><label for="tekstClanka">Tekst članka</label><br /><textarea name="text" class="glavnaForma" cols="" rows="20">' + text_to_edit + '</textarea><br /><label for="public">Javni tekst</label> <input id="public" name="public" type="checkbox" value="1" ' +public_checked+' /><br /><br /><label for="tag">Tagovi</label><br /><input id="tag" name="tags" type="text" class="glavnaForma" value="' + txt_tags + '" /><input type="file" id="image" name="image" /><br /><input type="submit" value="snimi" /></fieldset></form></div>';
					
					Kit.$('tag').onkeyup = function() {Kit.tags_dropdown()};
					
					/*Kit.$('cancellink').onclick = function (oldHTML) {						
						thisElem.innerHTML = oldHTML;
						return false;						
					}*/					
										
					/*var oFCKeditor_summary = new FCKeditor('text') ;
					oFCKeditor_summary.BasePath = "http://localhost/kit/admin/fckeditor/";
					oFCKeditor_summary.Width = '100%';
					oFCKeditor_summary.Height = '400';
					oFCKeditor_summary.ToolbarSet = 'Basic';
					oFCKeditor_summary.ReplaceTextarea() ;				*/
					
					
				}							
			
				if(Kit.$('edit_form')){
					
					Kit.$('edit_form').onsubmit = function(){
						// ajax disable	
						return;
					
						var xmlhttp = Kit.xmlhttp();
						var title = this.title.value;
						var text = this.text.value;
						var tags = this.tags.value;
						
						var parameters = "title=" 	+ title +
										 "&text=" 	+ text +	
										 "&tags=" 	+ tags + 
										 "&id="		+ Kit.url_param('last');									 						
									
						xmlhttp.open('POST', 'http://localhost/kit/ajax/ajax_edit.php', true);
						xmlhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
						xmlhttp.setRequestHeader("Content-length", parameters.length);
						xmlhttp.setRequestHeader("Connection", "close");						
						xmlhttp.send(parameters);
						
						xmlhttp.onreadystatechange=function() {
							if (xmlhttp.readyState==4) {									
								//tgtObj.innerHTML = xmlhttp.responseText;								
								//json = eval('(' + xmlhttp.responseText + ')');
								Kit.$('edit_area').innerHTML = xmlhttp.responseText; //json[1];
							}
						}					
								
						//return false;	
					}
				}
			
			}
			
			/*
			p[x].onmouseover = function(){                        
					//this.style.backgroundColor = '#D2F1FF'; //#ffffd0
			}
			p[x].onmouseout = function(){                        
					//this.style.backgroundColor = 'transparent';
			}		
			*/
			
		}
		
		if(comment_link[0]) comment_link[0].onclick = function(){				
				
			var comm_form = document.createElement('form');
			comm_form.id = 'comment_form';
			comm_form.action = '#komentari'
			comm_form.method = 'post';
			
			var comm_btn = document.createElement('input');
			comm_btn.id = 'comment_submit';
			comm_btn.value = 'snimi';
			comm_btn.type = 'submit';
			
			var comm_url = document.createElement('input');
			comm_url.id = 'comment_url';
			comm_url.name = 'comment_url';
			comm_url.value = window.location;
			comm_url.type = 'hidden';
			
			var comment = document.createElement('textarea');
			comment.id = 'comment_area';
			comment.name = 'comment_text';
			comment.style.width = 0;
			comment.style.height = 0;
			
			Kit.zoomIn (comment, '490', '200');
			
			if(Kit.$('comment_area')) {
				Kit.fadeOut(Kit.$('comment_form'), 0);
				
				setTimeout(function(){	
				Kit.$('komentari').removeChild(Kit.$('comment_form'));	
				}, 1000);
				
			}
			else {
				Kit.$('komentari').appendChild(comm_form);
				Kit.$('comment_form').appendChild(comment);					
				Kit.$('comment_form').appendChild(comm_url);
				Kit.$('comment_form').appendChild(comm_btn);
			}
			
			return false;
		}
		
		if(add_new_link) add_new_link.onclick = function() {
				
			cat_id = Kit.url_param('last');
			
			new_article_holder.innerHTML = '<div id="forma"><form id="save_form" name="save_form" method="post" action="'+Kit.root+'ajax/ajax_save.php" enctype="multipart/form-data"><fieldset><input type="hidden" name="cat_id" value="'+cat_id+'" /><label for="title">Ime članka </label><br /><input name="title" type="text" class="glavnaForma" /><br /><label for="tekstClanka">Tekst članka</label><br /><textarea name="text" class="glavnaForma" cols="" rows="20"></textarea><br /><label for="public">Javni tekst</label> <input id="public" name="public" type="checkbox" value="1" checked /><br /><br /><label for="tag">Tagovi</label><br /><input id="tag" name="tags" type="text" class="glavnaForma" /><br /><input type="file" id="image" name="image" /><br /><input type="submit" value="snimi" /></fieldset></form></div>';
			
			Kit.$('tag').onkeyup = function() {Kit.tags_dropdown()};
			
			/*
			if(Kit.$('save_form')){
				
				Kit.$('save_form').onsubmit = function(){
					// ajax disable	
					//return;
					
					jQueryUpload.ajaxFileUpload();
				
					var xmlhttp = Kit.xmlhttp();
					var title = this.title.value;
					var text = this.text.value;
					var tags = this.tags.value;
					
					if(this.image.value.indexOf('/') != -1) var image_array = this.image.value.split('/');	// unix, linux, mac and rest of normal world
					else var image_array = this.image.value.split('\\');								   // stupid windows
					var image_array_l = image_array.length;					
					var image = image_array[image_array.length-1];
					
					var parameters = "title=" 	+ title +
									 "&text=" 	+ text +	
									 "&tags=" 	+ tags +
									 "&image=" 	+ image + 
									 "&id="		+ Kit.url_param('last');									 						
								
					xmlhttp.open('POST', 'http://localhost/kit/ajax/ajax_save.php', true);
					xmlhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
					xmlhttp.setRequestHeader("Content-length", parameters.length);
					xmlhttp.setRequestHeader("Connection", "close");						
					xmlhttp.send(parameters);
					
					xmlhttp.onreadystatechange=function() {
						if (xmlhttp.readyState==4) {									
							//tgtObj.innerHTML = xmlhttp.responseText;							
							jsonOb = xmlhttp.responseText;
							json = eval('(' + jsonOb + ')');	
							new_article_holder.innerHTML = '<h3><a href="#">' + json[3] + ',</a> <a href="#">' + json[2] + '  </a> [<a id="delete_21" class="delete_link" href="">obriši me</a>]</h3><h2><a href="#">' + json[0] + '</a></h2><p>Lorem' + json[1] + '</p>';
							
						}
					}					
							
					return false;	
				}
			}
			*/
			return false;
				
		}

		var loginLink = Kit.$('login_link');
		
		if(loginLink){
			
			loginLink.onclick = function(){
				var loginBlock = document.createElement('div');
				loginBlock.id = 'loginBox';
				
				loginBlock.style.position 	= 'relative';
				loginBlock.style.top		= '10px';
				loginBlock.style.left		= '0';
				loginBlock.style.width		= '300px';
				loginBlock.style.height		= '120px';			
				loginBlock.style.border		= '2px solid #D2F1FF';
				loginBlock.style.fontSize	= '0.9em';				
				loginBlock.style.backgroundColor = '#F1FDFF';
				loginBlock.style.opacity	= '0.8';			
	
				loginBlock.innerHTML = '<form method="post" action="'+Kit.root+'index.php?page=login"><br /><input type="hidden" name="redirect" value="' + window.location + '" />username: <input type="text" name="username" /><br /><br />password: <input type="password" name="password" /><br /><br /><input type="submit" value="log in" style="margin-left: 65px;" /></form>';			
	
				if(Kit.$('loginBox')) {										
					Kit.$('header_img').removeChild(Kit.$('loginBox'));
				}
				else Kit.$('header_img').appendChild(loginBlock);
				
				return false;
			}
		}
		
		var invitationLink = Kit.$('invitation_link');
		
		if(invitationLink){
			
			invitationLink.onclick = function(){
				var invitationBlock = document.createElement('div');
				invitationBlock.id = 'invitationBox';
				
				invitationBlock.style.position 			= 'relative';
				invitationBlock.style.top				= '10px';
				invitationBlock.style.left				= '0';
				invitationBlock.style.padding			= '20px';
				invitationBlock.style.width				= '260px';
				invitationBlock.style.height			= '80px';			
				invitationBlock.style.border			= '2px solid #D2F1FF';
				invitationBlock.style.fontSize			= '0.9em';				
				invitationBlock.style.backgroundColor 	= '#F1FDFF';
				invitationBlock.style.opacity			= '0.8';			
	
				invitationBlock.innerHTML = '<form method="post" action="'+Kit.root+'index.php?page=registration&subpage=invitation"><input type="hidden" name="redirect" value="' + window.location + '" /><br />Pošalji pozivnicu na e-mail: <input type="text" name="email" size="22" /><br /><br /><input type="submit" value="pošalji" style="margin-left: 55px;" /></form>';			
	
				if(Kit.$('invitationBox')) {										
					Kit.$('header_img').removeChild(Kit.$('invitationBox'));
				}
				else Kit.$('header_img').appendChild(invitationBlock);
				
				return false;
			}
		}
		
		var dl = delete_links.length;
		
		for(x=0;x<dl;x++){
			
			delete_links[x].onclick = function(){
				
				var pos = Kit.findPos(this);	
				var del_box = document.createElement('div');
				del_box.id = 'delete_box';
				del_box.style.position = 'absolute';
				del_box.style.top =  pos[1] + 25 + 'px';
				del_box.style.left  = pos[0] - 50 + 'px';
				del_box.style.width = '200px';
				del_box.style.height = '60px';
				del_box.style.border = '5px solid #0071BC';
				del_box.style.backgroundColor = '#D2F1FF';
				del_box.style.fontWeight = 'bold';
				del_box.style.color = '#0071BC';
				del_box.style.padding = '20px'
				
				Kit.tag('body')[0].appendChild(del_box);
				
				Kit.setOpacity(Kit.$('delete_box'), 90);
				
				Kit.$('delete_box').innerHTML = 'Obriši ovaj članak?<br /><br /><a id="'+this.id+'" href="" onclick="Kit.remove_box();Kit.delete_article(this.id);return false;"><img src="'+Kit.root+'view/images/ok.gif"></a>&nbsp;&nbsp;&nbsp;&nbsp;<a href="" onclick="Kit.remove_box();return false;"><img src="'+Kit.root+'view/images/cancel.gif"></a>'							
				
				//Kit.delete_article(this.id);
				return false;
				
			}
		}
		
	},
	
	remove_box: function() {
		Kit.tag('body')[0].removeChild(Kit.$('delete_box'));	
	},
	
	delete_article: function(elem_id) {		
		
		to_delete = Kit.$(elem_id.replace(/delete/, "article"));
				
		Kit.fadeOut(to_delete, 0);
		
		var xmlhttp = Kit.xmlhttp();
		xmlhttp.open('get', Kit.root+'ajax/ajax_delete.php?id='+elem_id);			
		xmlhttp.onreadystatechange=function() {
			if (xmlhttp.readyState==4) {						
				//alert(xmlhttp.responseText);
			}
		}
		xmlhttp.send(null);	
	},
	
	tags_dropdown:  function(e){					
		
		var allTags = Kit.getAllTags();										
		var old_value = '';
		var space = '';
		var z = 0;
		var down = 1;
		
		tg = allTags.length;		
		ll = Kit.$('tag').value.split(' ').length;						
		last_tag = Kit.$('tag').value.split(' ')[ll-1];
		
		if(Kit.$('tags')){							
			Kit.$('forma').removeChild(Kit.$('tags'));						
		}
		
		var tags_drop = document.createElement('div');
		tags_drop.id = "tags";
		Kit.$('forma').appendChild(tags_drop);
		
		var has_tag = false;
		
		for(x=0;x<tg;x++){							
			
			if(allTags[x].indexOf(last_tag) == 0 && last_tag != '') {
				
				has_tag = true;
				tag_cnt = 0;
				
				z++;
											
				var tag_link = document.createElement('a');
				var linkText = document.createTextNode(allTags[x]);
				tag_link.id = "linkTag" + z;							
				
				tag_link.appendChild(linkText);
				Kit.$('tags').appendChild(tag_link);
				
				Kit.$('linkTag' + z).onmouseover = function(){								
					this.style.backgroundColor = 'silver';
				}
				
				Kit.$('linkTag' + z).onmouseout = function(){								
					this.style.backgroundColor = 'transparent';
				}
				
				Kit.$('linkTag' + z).onclick = function(){
					old_value = Kit.$('tag').value;
					tag_cnt++;
					
					if(tag_cnt == 1) new_tag = this.innerHTML.replace(last_tag, '');
					else new_tag = this.innerHTML;
					
					Kit.$('tag').value = old_value + space  + new_tag;														
					space = ' ';
					Kit.$('tag').focus();
					return false;																	
				}							
				
			} 					
			
		}
		
		/*down*/
		/*if(e.keyCode == 40 && Kit.$('linkTag' + down)){							
			Kit.$('linkTag' + down).style.backgroundColor = 'silver';
			Kit.$('linkTag' + down).focus();
			down++;
		}*/
								
		if(has_tag == false){							
			Kit.$('forma').removeChild(Kit.$('tags'));						
		}
	},
	
	allTags: function(){
		var xmlhttp = Kit.xmlhttp();
		var json_ob;
		
		xmlhttp.open('get', Kit.root+'ajax/all_tags.php');			
		xmlhttp.onreadystatechange=function() {
			if (xmlhttp.readyState==4) {
				//alert(xmlhttp.responseText);
				//tgtObj.loaded = true;
				json_ob = xmlhttp.responseText;
			}
		}
		xmlhttp.send(null);
		result = eval('(' + json_ob + ')');		
		return result;
	},
	
	$: function(e){
			return document.getElementById(e);        
	},
	
	tag: function(t, d){
			if(d) doc = d;
			else doc = document;			
			return doc.getElementsByTagName(t);        
	},				

	crass: function(searchClass,node,tag) {
        var classElements = new Array();
        if ( node == null ) node = document;
        if ( tag == null ) tag = '*';
        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) ) {
                    classElements[j] = els[i];
                j++;
            }
        }
        return classElements;
	},
	
	findPos: function(obj) {
		var curleft = curtop = 0;
		if (obj.offsetParent) {
			curleft = obj.offsetLeft
			curtop = obj.offsetTop
			while (obj == obj.offsetParent) {
				curleft += obj.offsetLeft
				curtop += obj.offsetTop
			}
		}
		return [curleft,curtop];
	},
	
	zoomIn: function(elem,endWidth,endHeight) {
		Kit.setWidth(elem,0);
		Kit.setHeight(elem,0);

		for(i=0;i <= endWidth; i +=5) {
			(function(){
				var pos = i;
				
				setTimeout(function(){
	
					Kit.setWidth(elem, pos);					
	
				}, (pos + 1));
			})();
		}
		
		for(i=0;i <= endHeight; i +=5) {
			(function(){
				var pos = i;
				
				setTimeout(function(){
		
					Kit.setHeight(elem, pos);
	
				}, (pos + 1));
			})();
		}
	},
	
	fadeOut: function (elem,endValue) {
		var minus = 100 + endValue;
		for(i=100;i >= endValue; i -=5) {
			(function(){
				var pos = i;
				
				setTimeout(function(){
					elem.style.position = 'absolute';
					elem.style.width = '520px';
					elem.style.marginTop = pos + 'px';
					opacity = minus - pos;
					Kit.setOpacity(elem, opacity);
					if(opacity == 0) elem.style.display = 'none';
				}, (pos - 1) * 10);
			})();
		}
	}, 
	

	setWidth: function (elem,level) {
	
		elem.style.width = level + 'px';
	
	},
	
	setHeight: function (elem,level) {
	
		elem.style.height = level + 'px';
	
	},
	
	setOpacity: function(elem,level) {

		if (elem.filters) elem.style.filters = 'alpha(opacity=' + level + ')';
		else elem.style.opacity = level / 100;

	},	
	
	xmlhttp: function () {
	
		var xmlhttp = false;
	
		if (window.XMLHttpRequest) {
			xmlhttp = new XMLHttpRequest;
		} else if (window.ActiveXObject) {
			try {
				xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
			} catch (e) {
				try {
					xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
				} catch (e) {
				}
			}
		}
		if (xmlhttp) {
			return xmlhttp;
		}
	},
	
	url_param: function ( key ) {		
	    var url = window.location.href.split('/');		
		if(key == 'last') key = window.location.href.split('/').length - 1;		
		return url[key];
	}
};

String.prototype.trim = function() {
	return this.replace(/^\s+|\s+$/g,"");
}

DomLoaded.load(Kit.init);