var path;

var loading = false;
var firstTimeLoad  = true;

function loadHref(link) {
	var nAgt = navigator.userAgent;
	if ((nAgt.indexOf("MSIE")) != -1) {
		//IE 6 (contains also http://):
		if (link.getAttribute('href').indexOf('http://') != -1) {
			var relativeHref = link.getAttribute('href').replace("http://", "");
			relativeHref = relativeHref.substring(relativeHref.indexOf("/") + 1);
			loadContent(relativeHref);			
		} else {
			//as usual if IE7/IE8.
			loadContent(link.getAttribute('href'));			
		}
	} else {
		loadContent(link.getAttribute('href'));
	}
	
	return false;
}

function loadContent(url) {
	//url = encodeURI(url);
	var nAgt = navigator.userAgent;
	if ((nAgt.indexOf("Opera")) != -1) {
		url = url.replace(" ", "%20");
	}

//	loadAjaxContent(url);
	$.history.load(url);
}

function pageHistoryLoad(hash) {
	if(hash != "") {
		loadAjaxContent(hash);
	} else {
		if (firstTimeLoad == false){
	     	window.location = "/";
		} else {
	     	firstTimeLoad = false;
	    }
	}
}

function loadAjaxContent(url) {

	if (!loading) {
		loading = true;
		
//		unselectCategory();
//		hideSubCategories();

		if(isMenuLayout() == true) {

			if(url.indexOf('?') == -1) {
				if(url.indexOf('#') == -1) {
					url = url + "?ajax=true";
				} else {
					var part11 = url.substring(0, url.indexOf('#'));
					var part21 = url.substring(url.indexOf('#'));
					
					url = part11 + "?ajax=true" + part21;
				}
			} else {
				if(url.indexOf('#') == -1) {
					url = url + "&ajax=true";
				} else {
					var part12 = url.substring(0, url.indexOf('#'));
					var part22 = url.substring(url.indexOf('#'));
					
					url = part12 + "&ajax=true" + part22;
				}
			}

//			$.ajax({
//		    	type: "GET",
//		        url: encodeURI(path + '_home/menu'),
//		        success: function(data) {
//					$("#sidebar_grid").get(0).innerHTML = data;
//					
//					loading = false;
//		        },
//		        async: true,
//		        cache: false
//		    });
			
			var loading = document.createElement('div');
			loading.align = "center";
			loading.style.height = "500px";
			loading.style.lineHeight = "500px";
			
			var image = document.createElement('img');
			image.src = path + "images/ajax-loader.gif";
			image.style.verticalAlign = "middle";
			image.alt = "loading";
			
			loading.appendChild(image);

			$("#main_grid").get(0).innerHTML = "<div align='center' style='height: 500px; padding-top: 250px'>"  + loading.innerHTML + "</div>";
			
			if(url.indexOf('http://') == -1) {
				url = path + "" + url
			}
			
			var scroll;
			
			if(url.indexOf('#') != -1) {
				scroll = url.substring(url.indexOf('#'));
				url = url.substring(0, url.indexOf('#'));
			}
			
			var nAgt = navigator.userAgent;
			if ((nAgt.indexOf("Opera")) != -1) {
				url = url.replace("%20", " ");
			}

			$.ajax({
		    	type: "GET",
		    	url: encodeURI(url),
		        //url: url,
		        contentType: 'text/text; charset=utf-8',
		        scriptCharset: 'utf-8',
		        success: function(data) {
					$("#main_grid").html(data);
					
					if (navigator.userAgent.indexOf("MSIE") == -1) {
						$("#main_grid").fadeIn();
					}
					
					try {
						if(scroll != null) {
							scrollTo($(scroll), $(scroll).get(0).offsetTop);
						} else {
							scrollTo(0, 0);
						} 
					} catch(e) {
					
					}
					
					loading = false;
		        },
		        error: function(data) {
		        	$("#main_grid").get(0).innerHTML = "<div align='center' style='height: 500px; padding-top: 250px; color: red'>Се извинуваме, страната која ја побаравте не може да се пронајде.</div>";
		        },
		        async: true,
		        cache: false
		    });
						
		} else {			
			if(url.indexOf('http://') == -1) {
				url = path + "" + url
			}
			
			window.location = encodeURI(url);
			
			loading = false;
		}
	
	}
}

function isMenuLayout() {
	var metaTags = document.getElementsByTagName("META");
	
	var layoutType;
	
	var lay = true;
	
	for(var i=0; i < metaTags.length ;i++) {
		if(metaTags[i].name == 'layoutType') {
			layoutType = metaTags[i].content;
			
			if(layoutType == 'Normal') {
				lay = true;
			} else if(layoutType == 'Wide') {
				lay = false;
			}
		}
	}
	
	return lay;
}

function loadCategory(url, categoryId) {
//alert("loadCategory:" + url + ".");
    if (categoryId == 'Popular') {
		loadContent("_tools/article/popular");
    } else if (categoryId == 1){
    	loadContent("_tools/archive/today");	
	} else {
//		loadContent("_tools/category/" + categoryId);
//	    loadContent("category/" + url);
        loadContent(url);
	}
	unselectCategory();
	setSelectedCategory(categoryId);

	/*try {
		getSubCategories(categoryId);
	} catch (e) {	
	}*/
}

function setSelectedCategory(id) {	
	$("#categoryMenu" + id).addClass('current');
}

function unselectCategory() {
	$(".current").removeClass('current')	
}

/*function hideSubCategories() {
	if(document.getElementById('subcategories_nav') != null) {
		document.getElementById('subcategories_nav').className = "display_none";
	}
	if(document.getElementById('tiles_subcategories_nav') != null) {
		if(document.getElementById('tiles_subcategories_nav').firstChild != null) {
			//TODO
			document.getElementById('tiles_subcategories_nav').removeChild(document.getElementById('tiles_subcategories_nav').firstChild);
			document.getElementById('tiles_subcategories_nav').className = "display_none";
		}
	}
}*/

function showSubCategories() {
	if(document.getElementById('subcategories_nav') != null) {
		document.getElementById('subcategories_nav').className = "display_cell";
	}
}

function loadSubCategory(url, superCategoryId, categoryId) {

//	loadContent("_tools/category/" + categoryId);
    loadContent(url);
        
	if(superCategoryId != null) {
	    unselectCategory();
		setSelectedCategory(superCategoryId);
	}
	
	showSubCategories();
}

function loadSubCategoryWithParent(url, superCategoryId, categoryId) {

//	loadContent("_tools/category/"+categoryId);
    loadContent(url);
	
	if(superCategoryId != null) {
	    unselectCategory();
		setSelectedCategory(superCategoryId);
	}
	try {
		getSubCategories(superCategoryId);
	} catch (e) {
		
	}
	showSubCategories();
}

function setPath(_path) {
	path = _path + "/";
}

function submitForm(form) {
	form.submit();
}

function appendHiddenToForm(name, value, form) {
	var hiddenField = document.createElement("input");
	hiddenField.setAttribute("type", "hidden");
	hiddenField.setAttribute("name", name);
	hiddenField.setAttribute("value", value);
	
	form.appendChild(hiddenField);	
}

function appendHiddenAndSubmitForm(name, value, form) {
	appendHiddenToForm(name, value, form);
	form.submit();
}

function appendHiddenValuesAndSubmitForm(name1, value1, name2, value2, form) {
	appendHiddenToForm(name1, value1, form);
	appendHiddenToForm(name2, value2, form);
	form.submit();
}
