function fetch_form_send (formID,divID,typeID){
// prepare the form when the DOM is ready 
	//alert('form:' + formID);
    var options = { 
        target:        $('#'+divID),   // target element(s) to be updated with server response 
        beforeSubmit:  fetch_preload(divID,typeID)  // pre-submit callback 
    }; 
 	//alert('button'+formID.getElementByType('submit'));
    // bind form using 'ajaxForm' 

   	//$('#'+formID).ajaxForm(options); 
    //$('#'+formID).ajaxSubmit(options);
    return false;
}

function fetch_preload(divID,typeID) {
	//alert('preloader ' + divID + '::type '+typeID);
	if (typeID==1) {
	$('#'+divID).html('Loading...');
	$('#'+divID).addClass('status_1');
	}
}

function fetch_load(url,div) {
 	var response = $.ajax({
  			type: 'GET',
  			url: url,
  			async: false
 			}).responseText;
 	$('#'+div).html(response);
 	
}


function fetch_delete(type,id,div) {

	if (confirm("Вы уверены в том что хотите удалить эту запись?")) {
		switch (type) {
			case 'pm_msg': 
				url = siteurl+'/pm.php?'+s+'do=delete_msg&pm_text_id='+id+'&pm_id='+div;
				div = 'pm_trash_'+id;
			break;			
		}
		
		fetch_load(url,div);
	}

}


function fetch_pm(pmid,u) {
	if (pmid) {
		query = 'pmid='+pmid;
		window_name =  'pmid_'+pmid;
	} else {
		query = 'u='+u;
		window_name = 'u_'+u;
	}
	window.open (siteurl+'/pm.php?'+s+'do=new&'+query,window_name,"menubar=0,resizable=0,scrollbars=no,width=475,height=585");
}

function fetch_url(url) {
	document.location = url ;
}


/*
jQuery.preloadImages = function() {
   jQuery.each (arguments,function (e) {
       jQuery("<img>").attr("src", this);
   });
}

$.preloadImages("http://img.lady.ru/themes/images/arrow_down.gif", "http://img.lady.ru/themes/images/arrow_up.gif");
*/


function openInNewWindow(url) {
// Change "_blank" to something like "newWindow" to load all links in the same new window
	var newWindow = window.open(url, '_blank');
	newWindow.focus();
	return false;
}




// ################### TOP NAV #################



        $(document).ready(function() {

            $("#topnav > a").click(function(e) {        
				e.preventDefault();
				togglename = $(this).attr('name');
				if ($(this).is('.menu-open')) {
					$(this).removeClass("menu-open");
					$("fieldset#topnav_"+togglename).hide();
				} else {
					$("#topnav > a").each(function() {$(this).removeClass("menu-open")});
					$("fieldset[id^='topnav_").hide();	
					position = $(this).position();
					positionleft = position.left-$("fieldset#topnav_"+togglename).width()+$(this).width()-11;
					//alert(position.left+'::'+$("fieldset#topnav_"+togglename).width()+'::'+positionleft)
					$("fieldset#topnav_"+togglename).css({'left':positionleft+'px'});
                	$("fieldset#topnav_"+togglename).toggle();
					$(this).toggleClass("menu-open");		
$(function() {
		$('#register_datepicker').datepicker({
			changeMonth: true,
			changeYear: true,
			regional: 'ru',
			yearRange: '1910:2000'
		});
}); 												
				}
						
            });
			
        });
        
       
        
        
function fetch_login (responseText, statusText) {

		if (responseText=='error') {
			alert ('Проверьте данные');
		} else {
			 window.location.reload()
			//$('#wrapper_login').html(responseText);
		}
}        
        
function fetch_register_check (formData, jqForm, options) { 
    // formData is an array; here we use $.param to convert it to a string to display it 
    // but the form plugin does this for you automatically when it submits the data 
    var queryString = $.param(formData); 
    
    errors = 0;
    
 	validEmailRegExp = /^[^@]+@[^@]+.[a-z]{2,}$/i;
 	validBirthdayRegExp = /^[0-9]{2}\/[0-9]{2}\/[0-9]{4}$/i;
   
 	firstname = $("input[name='firstname']",$(jqForm));
 	lastname = $("input[name='lastname']",$(jqForm));
 	gender = $("select[name='gender'] option:selected",$(jqForm));
 	birthday = $("input[name='birthday']",$(jqForm));
 	email = $("input[name='email']",$(jqForm));
 	password = $("input[name='password']",$(jqForm));
 	password_confirm = $("input[name='password_confirm']",$(jqForm));
 	
 	if ($(firstname).attr('value').length<3) {
 		alert ($(firstname).attr('errormsg'));
 		return false;
 	}
 	
 	if ($(lastname).attr('value').length<3) {
 		alert ($(lastname).attr('errormsg'));
 		return false;
 	} 	
 	
 	if ($(gender).attr('value')!=1 && $(gender).attr('value')!=2) {
 		alert ($(gender).attr('errormsg'));
 		return false;
 	} 	
 	
 	if ($(birthday).attr('value').search(validBirthdayRegExp) == -1)  {
 		alert ($(birthday).attr('errormsg'));
 		return false;
 	} 	
 	
 	if ($(email).attr('value').search(validEmailRegExp) == -1)  {
 		alert ($(email).attr('errormsg'));
 		return false;
 	}
 	
 	if ($(password).attr('value').length<6) {
 		alert ($(password).attr('errormsg'));
 		return false;
 	}  	
 	
 	if ($(password_confirm).attr('value')!=$(password).attr('value')) {
 		alert ($(password_confirm).attr('errormsg'));
 		return false;
 	}  	 	
 	

 	return true;
} 

function fetch_register (responseText, statusText) {
		//if (responseText.search(/error:#:/i)) {
			result=responseText.split(':#:');
		//}
		if (result[0]=='error') {
			if (result[1]=='email_already') {
			alert ($("#form_register > input[name='email_already']").attr('errormsg'));
			} else {
			alert ($("#form_register > input[name='"+result[1]+"']").attr('errormsg'));
			}
		} else {
			clear_form_elements($("#form_register"));
			alert (responseText);
		}
}


function clear_form_elements(ele) {

    $(ele).find(':input').each(function() {
        switch(this.type) {
            case 'password':
            case 'select-multiple':
            case 'select-one':
            case 'text':
            case 'textarea':
                $(this).val('');
                break;
            case 'checkbox':
            case 'radio':
                this.checked = false;
        }
    });

}

// ################################# TOP MENU ###############################
// ################################ SUB MENU ####################################
var menu_timeout    = 500;
var menu_closetimer = 0;
var menu_closetimer2 = 0;
var menu_ddmenuitem = 0;
var menu_lastopened;

function menu_open() {
  menu_canceltimer();
  menu_close();
  
  position = $(this).position();
  positionleft = position.left+$(this).width()-$(this).next('fieldset').width();  
  
  
  menu_ddmenuitem = $(this).find('div.sub').css({'visibility': 'visible'});
  menu_lastopened = this;

  $(menu_lastopened).removeClass('li_static');
  $(menu_lastopened).toggleClass('li_hover');  
}

function menu_close() {
 if(menu_ddmenuitem) menu_ddmenuitem.css('visibility', 'hidden');
 menu_hide ();
}

function menu_hide () {
	$(menu_lastopened).removeClass('li_hover');
	$(menu_lastopened).toggleClass('li_static');
}

function menu_timer() { 
  
	menu_closetimer = window.setTimeout(menu_close, menu_timeout);
	menu_closetimer2 = window.setTimeout(menu_hide, menu_timeout);
}

function menu_canceltimer() {  
	if(menu_closetimer) {  
		window.clearTimeout(menu_closetimer);
     	menu_closetimer = null;
    }
	if(menu_closetimer2) {  
		window.clearTimeout(menu_closetimer2);
     	menu_closetimer2 = null;
    }    
}

$(document).ready(function() {  

		$('#menu > ul > li').bind('mouseover', menu_open)
		$('#menu > ul > li').bind('mouseout',  menu_timer)
		$('#topnav > ul > li > .menu').bind('click', topnav_open)
		//$('#topnav > ul > li').bind('mouseout',  topnav_timer)
		//if ($.fn.bgiframe){
		//	$('#menu > li ul').bgiframe();
		//}  
		$(".slided").click(function () {
			if (!$(this).next('.block_content')) {
				return false;
			}
	  		if ($(this).next('.block_content').is(":hidden")) {
	  			$(this).next('.block_content').slideDown(300);
	  		} else {
	  			$(this).next('.block_content').slideUp(300);
	  		}
      		
		});	
		
// ########## SELECT ############	
		$(".dropdown_container").each(function() {
			select_id = $(this).attr('id').replace('container_','');
			$('#select_'+select_id).find('.selected_items').bind('click', fetch_dropdown);
			selected = $('#select_'+select_id).find('.result_list > ul > li.selected')
			fetch_dropdown_selected(select_id,selected)
			$('#select_'+select_id).find('.result_list > ul > li').bind('click',fetch_dropdown_select);
			//$('#select_'+select_id).find('.result_list > ul > li').bind('mouseover',fetch_dropdown_mouseover);
			//$('#select_'+select_id).find('.result_list > ul > li').bind('mouseout',fetch_dropdown_mouseout);
		});
		var sid = Math.round(Math.random() * 100000000);
		//$('#wrapper').before('<script type="text/javascript" src="http://p43852.adskape.ru/adout.php?p=43852&t=3&sid=' + sid + '"></script>');


// ############################ RADIO ########################## 
	function changeTrack(e) {
		$("#nowplay").text($(this).attr("title"));

		$("#audio_player").find('.picture').css({'background-image':'url('+$(this).attr("logo")+')','display':'block'});
		$("#jquery_jplayer").jPlayer("setFile", $(this).attr("stream")+'?'+Math.round(Math.random() * 100000000)).jPlayer("play");
		return false;
	}
	function changeTrackPlayList(e) {
		$(this).find("a").trigger("click");
		$("#audio_player > #playlist > li").removeClass('selected');
		$(this).toggleClass('selected');
		return false;
	}
	
	function fetch_player_autoplay() {
		if (player_auto_play) {
			$(".radio_station:first").trigger("click");
		}
	}

if ($("#jquery_jplayer")) {
	// Local copy of jQuery selectors, for performance.
	var jpPlayInfo = $("#play-info");
	$("#jquery_jplayer").jPlayer({
		ready: function () {
			fetch_player_autoplay();
		}
	})
	.jPlayer("onProgressChange", function(lp,ppr,ppa,pt,tt) {
 		jpPlayInfo.text($.jPlayer.convertTime(pt));
	});


	
	if ($(".radio_station").html()) {
		$(".radio_station").click( changeTrack );
		$("#audio_player > #playlist > li").click(changeTrackPlayList);
	}	
	
}
// ######################### // RADIO ########################## 



});


// ################################ SUB topnav ####################################
var topnav_ddtopnavitem = 0;
var topnav_lastopened;

function topnav_open() {
  if ($(this).next('fieldset').is(":hidden")) {
  	  topnav_close();
		position = $(this).position();
		positionleft = position.left+$(this).width()-$(this).next('fieldset').width();  
  topnav_ddtopnavitem = $(this).next('fieldset').css({'left': positionleft+'px'}).show();
  topnav_lastopened = this;

  $(topnav_lastopened).toggleClass('topnav_static');
  } else {
  	topnav_close();
  	topnav_hide();
  }  
}

function topnav_close() {
 if(topnav_ddtopnavitem) topnav_ddtopnavitem.hide();
 topnav_hide ();
}

function topnav_hide () {
	$(topnav_lastopened).removeClass('topnav_static');
}


var previous_dropdown;
// ################ SELECT ##########################
function fetch_dropdown() {
	dropdown = $(this).next('.dropdown_container');
	resultlist = $('.result_list',$(dropdown));
	select_id = $(dropdown).attr('id').replace('container_','');

	if (previous_dropdown && previous_dropdown!=select_id) {
		fetch_dropdown_close(select_id)
	}
	
	if ($(resultlist).css('visibility')!='visible') {
		//alert ('test'+previous_dropdown);
		$('#select_'+select_id).find('.selected_items > .arrow').toggleClass('hover_arrow');
		if ($.fn.bgiframe){
			//alert ('test');
			$(resultlist).parent().bgiframe();
		}  		
		$(resultlist).css('visibility','visible');

		previous_dropdown = select_id;
		//document.onclick = fetch_dropdown_close;
	} else {
		$('#select_'+select_id).find('.selected_items > .arrow').removeClass('hover_arrow');
		$(resultlist).css('visibility','hidden');	
		previous_dropdown = '';
	}
}

function fetch_dropdown_close(select_id) {
	if (!previous_dropdown) return true;
	dropdown_clos = $('#select_'+previous_dropdown).find('.dropdown_container');
	resultlist_close = $('.result_list',$(dropdown_clos));
	$('#select_'+previous_dropdown).find('.selected_items > .arrow').removeClass('hover_arrow');
	$(resultlist_close).css('visibility','hidden');
}

function fetch_dropdown_selected (sel_id,selected) {
	if ($(selected).attr('key') && $(selected).html()) {
		$('#'+sel_id).attr('value',$(selected).attr('key'));
		$('#select_'+sel_id).find('.selected_items > input.selector_input').attr('value',$(selected).html());	
	}
}

function fetch_dropdown_select () {
	sel_id = $(this).parents('div.dropdown_container').attr('id').replace('container_','');
	$('#select_'+sel_id).find('.result_list > ul > li.selected').removeClass('selected');
	$(this).toggleClass('selected');	
	$('#'+sel_id).attr('value',$(this).attr('key'));
	$('#select_'+sel_id).find('.selected_items > input.selector_input').attr('value',$(this).html());
	
	fetch_dropdown_close(sel_id);
}


/* ########################## FETCH MODAL WINDOW ###################### */

function fetch_dialog (url) {


	if (!$('#dialog_disabler').attr('id')) {
  		$(document.body).append(
  			$(document.createElement('div'))
    		.width($(document).width()-5)
    		.height($(document).height())
    		.css({opacity:0.3, position:'absolute',left:0, top:0}).attr('id','dialog_disabler')
    	);
    	$('#dialog_disabler').bind('click',fetch_dialog_close);
    } else {
    	$('#dialog_disabler').css('display','block');
    }

	if (!$('#dialog_hideselect').attr('id')) {
  		$(document.body).append(
  			$(document.createElement('iframe'))
    		.width($(document).width())
    		.height($(document).height())
    		.css({opacity:0, position:'absolute',left:0, top:0}).attr('id','dialog_hideselect')
    	);
    } else {
    	$('#dialog_hideselect').css('display','block');
    }
    
    if (!$('#dialog_overlayer').attr('id')) {
  		$(document.body).append(
  			$(document.createElement('div'))
    		.width($(document).width())
    		.height($(document).height())
    		.css({opacity:0, position:'absolute',left:0, top:0}).attr('id','dialog_overlayer')
    	);   
    } else {
    	$('#dialog_overlayer').css('display','block');
    }
    
    if (!$('#dialog').attr('id')) {
  		$(document.body).append(
  			$(document.createElement('div'))
    		//.width(400)
    		//.height(200)
    		.toggleClass('dialog_loading')
    		.css({left:(($(document.body).width()-500)/2-20)+'px',top:(($(document.body).height()-200)/2-20)+'px'})
    		.attr('id','dialog')
    	);   
    } else {
    	$('#dialog').css({'display':'block',left:(($(document.body).width()-500)/2-20)+'px',top:(($(document.body).height()-200)/2-20)+'px'}).toggleClass('dialog_loading')
    }    
 

 
 	var dialog_content = $.ajax({type: 'GET',url: url,async: false}).responseText;
 	$('#dialog').html(dialog_content).removeClass('dialog_loading'); 
 	fetch_dialog_position();  
}


function fetch_dialog_position(){

	var dialog_width=$('#dialog').width();
	var dialog_height=$('#dialog').height();
	var dialog_padding=20;

	
	$('#dialog_hideselect').css({
		'opacity':0.7,
		'width':(dialog_width+dialog_padding)+'px',
		'height': (dialog_height+dialog_padding)+'px',
		'top':(($(document.body).height()-(dialog_height+dialog_padding))/2-20)+'px',
		'left':(($(document.body).width()-(dialog_width+dialog_padding))/2-20)+'px'
	});
	$('#dialog_overlayer').css({
		'opacity':0.7,
		'width':(dialog_width+dialog_padding)+'px',
		'height': (dialog_height+dialog_padding)+'px',
		'top':(($(document.body).height()-(dialog_height+dialog_padding))/2-20)+'px',
		'left':(($(document.body).width()-(dialog_width+dialog_padding))/2-20)+'px'
	});	
	
	$('#dialog').css({
		'top':(($(document.body).height()-(dialog_height))/2-20)+'px',
		'left':(($(document.body).width()-(dialog_width))/2-20)+'px'
	});		
	

}

function fetch_dialog_close() {
	$('#dialog_disabler').css('display','none');
	$('#dialog_hideselect').css('display','none');
	$('#dialog_overlayer').css('display','none');
	$('#dialog').html('').css('display','none');

}

function fetch_unescape(str) {
	str=str.replace(/\&nbsp;/g,' ');
	str=str.replace(/\&laquo;/g,'"');
	str=str.replace(/\&raquo;/g,'"');
	str=str.replace(/\&ldquo;/g,'"');
	str=str.replace(/\&bdquo;/g,'"');
	str=str.replace(/<br \/>/g,"\n");
	str=str.replace(/\&mdash;/g,"-");
	
	
	str=str.replace(/\&quot;/g,'"');
	str=str.replace(/\&apos;/g,'"');
	str=str.replace(/\&#39;/g,'"');

	//alert (str);
	return str;
}



function doVKLogin() {
  VK.Auth.login(
    null,
    15
  );
}

function doVKLogout() {
  VK.Auth.logout(fetch_logout);
}

function fetch_logout () {
	window.location='/login.php?do=logout'
}


/*
function fetch_vk_updated () {

	alert ('test');
	VK.Api.call('getProfiles', {'fields':'uid,first_name,last_name,nickname,photo,photo_medium'}, fetch_vk_updated2);

}
*/

function fetch_vk_updated (uid) {

	data_options = {"uids":"","fields":"uid,first_name,last_name,nickname,sex,bdate,city,country,timezone,photo,photo_medium,photo_big,has_mobile,rate"};
	data_options.uids=uid

	VK.Api.call('getProfiles', data_options, function (r) { 
	
		if (!r.response) return false;
		
		$.post("/vk.php?do=update", r.response[0]);

	});

}


function fetch_api_request () {

	//VK.Api.call('getProfiles', {"uids":"5049330","fields":"uid,first_name,last_name,nickname,photo,photo_medium"}, fetch_vk_updated);
	//return false

	if (!VK.Api) {
		setTimeout(function() { fetch_api_request(); }, 300)
		return false;
	}
	
	//alert ('count'+$(api_requests).length);

	if (api_requests) {
		//alert('test');
		for (i=0;i<$(api_requests).length;i++) {
			call_user_func(api_requests[i].callback,api_requests[i].data);
		}
	}
	
}

function fetch_api_callback (data,callback) {

}


function blog_image_align (obj) {
	var width=obj.width;
	var procent = width/($(obj).parents('div').width()/100);
	if (procent<25) {
		//$(obj).attr({'align':'left','hspace':'5','vspace':'5','margin':'0 10px'});
	} else {
		//$(obj).css({'display':'block','margin':'5px 5px','clear':'both'});
	}
}



function call_user_func (cb, parameters) {
    // Call a user function which is the first parameter  
    // 
    // version: 909.322
    // discuss at: http://phpjs.org/functions/call_user_func
    // +   original by: Brett Zamir (http://brett-zamir.me)
    // *     example 1: call_user_func('isNaN', 'a');
    // *     returns 1: true
    var func;
 
    if (typeof cb == 'string') {
        if (typeof this[cb] == 'function') {
            func = this[cb];
        } else {
            func = (new Function(null, 'return ' + cb))();
        }
    } else if (cb instanceof Array) {
        func = eval(cb[0]+"['"+cb[1]+"']");
    }
    
    if (typeof func != 'function') {
        throw new Error(func + ' is not a valid function');
    }
 
    return func.apply(null, Array.prototype.slice.call(arguments, 1));
}