// main admin 

// send to url with post
function postToUrl(obj)
{
	var $form = $('<form id="form" method="post" style="display:none"></form>').attr('action',obj.form_action);
		
	for(x in obj){
		$form.append($('<input type="hidden" />').attr('name',x).attr('id',x).val(obj[x]));	
	}
	
	$('body').append($form);
	$form.submit();
}

// adds attributes and html to jquery object from data object
function updateJObject($obj,data)
{
	for(x in data)
	{
		switch(x)
		{
			case 'html':
				$obj.html(data[x]);
				break;
			case 'val':
				$obj.val(data[x]);
				break;
			case 'message':
				// do not add
				break;
			default:
				$obj.attr(x,data[x])
		}
	}
	return $obj;
}

// if object has confirm attribute then need to confirm, else confirmed is true
function isConfirmed($obj){
	var confirmed = false;
	
	if($obj.attr('confirm'))	{
		confirmed = confirm($obj.attr('confirm'));
	}else{
		confirmed = true;
	}
	return confirmed;
}


// convert string to object 
function hash2object(hash,del1,del2){
	// hash = kaynak:a/sayfa:2/tag:kopek,kedi yi objeye cevir
	// hash2object(data_in,"|","=>");
	// hash = kaynak=>a|sayfa=>2|tag:kopek
	var r_obj=new Object();
	try{
		if(del1.length==0){
			del1="/";
		}
	}catch(err)	{
		del1="/";
	}
	
	try{
		if(del2.length==0){
			del2=":";
		}
	}catch(err)	{
		del2=":";
	}
	//alert("hash2object("+hash+","+del1+","+del2+")");
	
	var arr_hash=hash.split(del1);
	
	
	$.each(arr_hash,function(i){
		var arr_h=this.split(del2);
		r_obj[arr_h[0]]=arr_h[1];
		//alert(arr_h[0]+":"+arr_h[1]);
	})
	
	return r_obj;
}


/* other functions */
/* get browset language */
function getBrowserLng()
{
	var userLang = (navigator.language) ? navigator.language : navigator.userLanguage;
	// alert ("The language is: " + userLang);
	return userLang;
}

/* check user language and update signup box if user language is different */
function updateSignupBoxLng(current_lng)
{
	// get current language or assume as default english
	if(current_lng==undefined || current_lng=='')
	{
		current_lng = 'en';
	}
	
	new_lng = getBrowserLng();

	// if correct lng then exit
	if(new_lng.match(current_lng))
	{
		return false;
	}
	
	var lng = ['en','es','tr','de'];
	
	for(x in lng)
	{
		if(new_lng.match(lng[x]))
		{
			new_lng_ = lng[x];
		}
	}
	
	// show lng  
	// $('.sign_up_frame').after(new_lng+'.'+new_lng_+'.'+current_lng);
	
	if(new_lng_==current_lng || new_lng_=='en')
	{
		return false;
	}
	
	// update signup box with new language
	$('.sign_up_frame').load('/login/signupbox/'+new_lng_);
}



function rotateUL($ul)
{
	// get first li element
	$('li:first',$ul)
		.animate({opacity: 1.0}, 2000)
		.slideUp('slow', function() {
		      $(this).appendTo($ul);
		      $(this).show();
		      rotateUL($ul);
		    });
		
}


// operations with favorite  
/* favorites page */

function alert_login(){
	if(confirm(__l('You need to login to add to favorites. Do you want to login?')))
	{
		top.location.href = "/login/?rd="+location.href;
	}
}

function processing_error()
{
	alert(__l('Error processing your request. Please try again.'));
}

function init_related_records()
{
	// show hide related records
	$('.ilgili_nav ul a').click(function(){
        // hide content
        $('div.ilgili_icerik').addClass('hidden');
        var cur_tab = $(this).attr('rel');
        $('div.'+cur_tab).removeClass('hidden');
        
        // switch menu
        $('.ilgili_nav ul li.sel').removeClass('sel');
        $(this).parent().addClass('sel');
        
        return false;
        
    });

    // select first tab
	// $('.ilgili_nav ul li a:first').click();
	
	// display record not found message on empty tabs
	$('div.ilgili_icerik').each(function (){
		var $me = $(this);
		if(!$('li',$me).length){
			$me.append('<li>'+__l('Record not found')+'</li>');
		}
	});
}

// used in favorites page
function favorite_add()
{
	// add this records to favorites and change text 
	var $me = $(this);
	var status = $me.attr('rel');
	var f_kid = $me.attr('id');
	var f_type = $me.attr('type');
	var add = 1;

	var url_rate = '/favorite/add/';

	
	if(status=='login'){alert_login();return false;}
	else if(status=='on'){add = 0;}

	$.post(url_rate,{add:add,f_kid:f_kid,f_type:f_type},function(data){
		if(data=='login'){alert_login();return false;}
		else if (data=='on'){
			$me.attr('rel','on');
			$me.html(__l('Remove from favorites'));
		}else if(data=='off'){
			$me.attr('rel','off');
			$me.html(__l('Add to favorites'));
		}else{
			processing_error();
		}
	});
	return false;
}




/* listing pages */

// used on listing pages 
function favorite_add_small()
{
	var $me = $(this);
	var f_kid = $me.attr('f_kid');
	var f_type = $me.attr('f_type');
	var f_lng = $me.attr('f_lng');
	var status = $me.attr('rel');
	var add = 1;
	
	var url_rate = '/favorite/add/';
	
	if(status=='login'){alert_login();return false;}
	else if(status=='on'){add = 0;}

	setFavState($me,'updating');
	
	$.post(url_rate,{add:add,f_kid:f_kid,f_type:f_type,f_lng:f_lng},function(data){
		if(data=='login'){alert_login();setFavState($me,'login');return false;}
		else if (data=='on'){
			setFavState($me,'on');
		}else if(data=='off'){
			setFavState($me,'off');
		}else{
			setFavState($me,'login');
			processing_error();
		}
	});
	return false;
}

// reads and updates favorites on page for this user
function readFavStatus()
{
	var post = '';
	var url_rate_load_status = '/favorite/loadStatus/';

	$('a.fav_action_icon').each(function(i){
		var $a = $(this);
		post += '&f_kid[]='+$a.attr('f_kid')
				+'&f_type[]='+$a.attr('f_type')
				+'&f_lng[]='+$a.attr('f_lng');	
	});

	if(post.length)
	{
		$.post(url_rate_load_status,{data:post},function(data){
			var arr_rows = data.split(';');
			for(i in arr_rows)
			{
				if(!arr_rows[i].length)
				{
					continue;
				}
				arr_ids = arr_rows[i].split(',');
				$a = $('a.fav_action_icon[f_kid="'+arr_ids[0]+'"][f_type="'+arr_ids[1]+'"][f_lng="'+arr_ids[2]+'"]');
				setFavState($a,'on');
			}
		});
	}
}

function setFavState($obj,state)
{
	$obj.attr('class','').addClass('fav_action_icon').addClass('fav_action_icon_'+state);
	$obj.attr('rel',state);
}


// lng functions
//manage blog messages
var obj_translate = {}; 
function __l(str,arr)
{
	var r = str;
	if(obj_translate[str] != undefined)
	{
		r = obj_translate[str];
	}
	
	// place variables
	if(arr!=undefined)
	{
		for(x in arr)
		{
			r = r.replace(x,arr[x]);
		}
	}
	return r;
}