<!--

//2. Поиск подстроки  subString в строке fullString. Возвращает подстроку от первого знака subString до последнего знака в строке fullString.
function rightBackString(fullString, subString) {
	if (fullString.lastIndexOf(subString) == -1) {
		return "";
	} else {
		return fullString.substring(fullString.lastIndexOf(subString)+1, fullString.length);
	}
}

function include_once(url){
	var ext=rightBackString(url,'.');
	if (ext=='js') $.xLazyLoader({js: url});
	else if (ext=='css') $.xLazyLoader({css: url});
	else if (ext=='gif' || ext=='jpg'  || ext=='jpeg'  || ext=='png') $.xLazyLoader({image: url});
}


/*
Ajax loader
*/

function showLoader(loader){
	if (loader.ajaxTimerCount) return 0;
	hideLoader(loader);
	loader.timer=setTimeout(function(){
		if (loader.firstChild && loader.firstChild.className=='ajax-loader') return 0;
		if (!loader.ajaxTimerCount){
			var elem = document.createElement('img');
			elem.src = CMS_URL+'includes/js/loader.gif';
			elem.align='absmiddle';
			elem.className='ajax-loader';
			elem.border=0;
			if (elem.height>loader.offsetHeight || elem.height==0) elem.height=loader.offsetHeight-2;
			loader.insertBefore(elem,loader.firstChild);
		}

		loader.ajaxTimerCount++;

	}, 100);


	setTimeout(function(){
		hideLoader(loader);
	}, 10000);

	return 1;
}


function hideLoader(loader){
	if (loader.timer) clearTimeout(loader.timer);
	if (loader.ajaxTimerCount>=1){
		if (loader.firstChild.tagName=="IMG") loader.removeChild(loader.firstChild);
	}
	loader.ajaxTimerCount=0;
}


function FindLink(base_url){
	var trigger = new Array();

	if (!trigger.length){
		url=base_url;
		if (url) trigger = jQuery("a[href*='"+url+"']");
	}

	if (!trigger.length){
		url=jQuery.url.setUrl(base_url).attr("relative");
		url=url.replace('/','');
		if (url) trigger = jQuery("a[href*='"+url+"']");
	}


	if (!trigger.length){
		url=jQuery.url.setUrl(base_url).attr("file")+"?"+jQuery.url.setUrl(base_url).attr("query");
		if (url) trigger = jQuery("a[href*='"+url+"']");
	}

	if (!trigger.length){
		url=jQuery.url.setUrl(base_url).attr("query");
		if (url) trigger = jQuery("a[href$='"+url+"']");
	}

	if (!trigger.length){
		url=jQuery.url.setUrl(base_url).attr("file");
		if (url) trigger = jQuery("a[href*='"+url+"']");
	}




	if (!trigger.length){
		//url=jQuery.url.setUrl(base_url).attr("query");
		if (url) trigger = jQuery("a[href*='"+url+"']");
	}

	return trigger;
}

function history_load(content, trigger, href){
	//if (!content.lenght()) return false; // если content не найден - ошибка
	if (!trigger) trigger=this;
	var url;
	if (href==null){
		url=trigger.href;
		if (url==null) url=trigger.action;
	}else url=href;

	if (!url) return false;

	send='';
	if (trigger){
		trigger.ajaxContent=content;
		if (!showLoader(trigger)) return false;
		if (trigger.tagName=='FORM')  send['trigger']=trigger;
	}

	jQuery.history.load(content+'='+url, trigger);

	return false;
}

function LoadCallback(hash, param){
	if(hash){
		//var a=hash.split('=',2);
		var a=new Array();
		a[0]=hash.substring(0, hash.indexOf('='));
		a[1]=hash.substring(hash.indexOf('=')+1);

		var url=a[1];
		// добавляем параметры в вызов
		if (url.indexOf('?')==-1) url+='?'; else url+='&';
		url+="ajax="+escape(a[0]);

		jQuery.ajax({
			url: url,
			dataType : "html",
			success:
			function(responseText, textStatus){
				if (textStatus=="success"){
					jQuery(a[0]).hide();
					jQuery(a[0]).html(responseText);
					OnDocumentLoad(a[0]);
					jQuery(a[0]).animate({opacity: "show"}, "fast");
					if (this.textContent) document.title=this.textContent;
				}else{
					//document.location=a[1];
				}


				if (param){
					hideLoader(param);
				}else{
					var trigger=FindLink(a[1]);

					if (trigger.length){
						trigger.filter("[rel='"+a[0]+"']").each(function(){
							hideLoader(this);
						});

						jQuery(".selected").removeClass("selected");
						jQuery(trigger).addClass("selected");
					}
				}
				//alert("The last 25 entries in the feed have been loaded "+textStatus);


			}
			,error:  function (XMLHttpRequest, textStatus, errorThrown) {
				if (param){
					hideLoader(param);
				}else{
					var trigger=FindLink(a[1]);

					if (trigger.length){
						trigger.filter("[rel='"+a[0]+"']").each(function(){
							hideLoader(this);
						});

						jQuery(".selected").removeClass("selected");
						jQuery(trigger).addClass("selected");
					}
				}
				//alert(errorThrown);
			}


		});
	}else{
		//jQuery("#load").empty();
	}
}



/**
load('#content', 0, 'index.php');
*/
function load(content, trigger, href, param){
	//Defaults
	var d = {
		success: function(){}
	};
	$.extend(d, param);
	
	//if (!content.lenght()) return false; // если content не найден - ошибка
	if (!trigger) trigger=$(content)[0];
	if (!trigger) trigger=this;
	var url;
	if (href==null){
		url=trigger.href;
		if (url==null) url=trigger.action;
	}else url=href;

	if (!url){
		//return false;
		url=document.location.href;
	}

	send='';
	if (trigger){
		trigger.ajaxContent=content;
		if (!showLoader(trigger)) return false;
		if (trigger.tagName=='FORM')  send['trigger']=trigger;
	}


	// добавляем параметры в вызов
		if (url.indexOf('?')==-1) url+='?'; else url+='&';
		url+="ajax="+escape(content);

		jQuery.ajax({
			url: url,
			dataType : "html",
			success:
			function(responseText, statusText){
				if (statusText=="success"){
					
					var processed=false;
					
					if (d['success']){
						if(d['success'](responseText, statusText)==false){
							processed=true;
						}
					}
					
					
					if (!processed){ 
						jQuery(content).css("opacity", "20%");
						jQuery(content).html(responseText);
						jQuery(content).animate({opacity: "show"}, "fast");
						jQuery(content).show();
					}
					
					OnDocumentLoad(content);
					//jQuery(content).animate({opacity: "show"}, "fast");
					//if (this.textContent) document.title=this.textContent;
					
				}else{
					//document.location=a[1];
				}
				
				hideLoader(trigger);
				
			}
			,error:  function (XMLHttpRequest, textStatus, errorThrown){
				hideLoader(trigger);
				alert(textStatus+' '+errorThrown);
			}


		});
	

	return false;
}





function loadForm(content, form, param){
	//Defaults
	var d = {
		success: function(){}
	};
	$.extend(d, param);

	var target=jQuery(content);
	var trigger=jQuery(form).find("button[type='submit']");
	if (!trigger.length) trigger=jQuery(form).find("input[type=submit]");
	if (!trigger.length) trigger=jQuery(form);
	trigger=trigger[0];

	jQuery(form).ajaxSubmit({
		beforeSubmit: function(formData, jqForm, options){

			// добавляем параметры в вызов
			if (options['url'].indexOf('?')==-1) options['url']+='?'; else options['url']+='&';
			options['url']+="ajax="+escape(content);

			showLoader(trigger);
		}, // функция, вызываемая перед передачей
		success: function(responseText, statusText){
			if (statusText=="success"){
				if (d['success']){
					if(d['success'](responseText, statusText)==false) return;
				}
				//target.hide();
				target.html(responseText);
				OnDocumentLoad(target);
				//target.animate({opacity: "show"}, "fast");
				//target.show();
			}
			hideLoader(trigger);
		}, // функция, вызываемая при получении ответа
		timeout: 30000 // тайм-аут
	});
	return false;
}



function OnDocumentLoad(parent){
	if (!parent){
		parent=document;
		// инициализируем историю
		//jQuery.history.init(LoadCallback);

		// предзагрузка индикатора загрузки ajax
		include_once(CMS_URL+'includes/js/loader.gif');
	}else{
		
	}

	// по нажатию на ссылку, ее адрес будет загружен в контейнер rel
	jQuery(parent).find("a[rel]").click(function(){return load(jQuery(this).attr("rel"), this);});

	// обработка форм с rel
	jQuery(parent).find("form[rel]").submit(function(){return loadForm(jQuery(this).attr("rel"), this);});



	
	// обработка кнопок
	//$('.ui-button').addClass('ui-state-default ui-corner-all');
	
	// обработка кнопок
	//$('INPUT, TEXTAREA, SELECT').addClass('ui-state-default ui-corner-all ui-state-active');
	/*.hover(
   		function(){$(this).removeClass('ui-state-active');}, 
  	 	function(){$(this).addClass('ui-state-active');}
	);*/
	
	/*
	
	// обработка наведения мыши
	$('.ui-state-default').hover(
   		function(){$(this).addClass('ui-state-hover');}, 
  	 	function(){$(this).removeClass('ui-state-hover');}
	);*/

	

	/*
	// обработка подсказок
	$.fn.qtip.styles.mystyle = { // Last part is the name of the style
	width: 200,
	background: '#FFFF99',
	color: 'black',
	textAlign: 'center',
	border: {
	width: 1,
	radius: 1,
	color: '#FFFF00'
	},
	tip: 'middleLeft',
	name: 'dark' // Inherit the rest of the attributes from the preset dark style
	}
	$('a[title]').qtip({ style: { name: 'mystyle', tip: true }});
	*/
	
	
	jQuery(parent).find('.tooltip').qtip({ 
		content: {url: jQuery(this).attr("title")},
		hide:{ fixed: true, delay: 500 },
		style:{
			border:{
				width: 1,
				radius: 2
			},
			tip: true // Give it a speech bubble tip with automatic corner detection
		}
	});



	// обработка диалогов
	//$.ui.dialog.defaults.bgiframe = true;
	jQuery(parent).find('A.dialog').click(function(){
	
		var url = this.href;
		var title = jQuery(this).attr("title");
		var dialog = $("<div style=\'overflow:auto;display:hidden;\'></div>").appendTo("body");
		var trigger=this;
		
		if (!showLoader(trigger)) return false;
		
		//var x = jQuery(this).position().left + jQuery(document).outerWidth();
    	//var y = jQuery(this).position().top - jQuery(document).scrollTop();
		
		// load remote content
		dialog.load(
			url,
			{},
			function (responseText, textStatus, XMLHttpRequest){
				
				
				
				dialog.dialog({
					//position: [x,y],
					//overlay: { backgroundColor: "#000", opacity: 0.5 },
					title: title,
					height: 'auto',
					width: 'auto',
					modal: true,
					closeOnEscape: true,
					close: function(ev, ui) {
						$(this).remove();
					},

					open: function(event, ui){
						

					}

				});
				
				$(".ui-widget-overlay").bind("click", function(event){ 
					$(".ui-dialog-titlebar-close").trigger("click");
				}); 
				
				hideLoader(trigger);
				
				
			}
		);
		
	
		//prevent the browser to follow the link
		return false;
	});
	
	

	
	// обработка lightbox
	jQuery(parent).find("A.lightbox").lightBox();

}

$().ready(function(){
	OnDocumentLoad();	
});


//-->