function clear_text_box(obj, string, autoselect) 
{
	if($(":input[id=" + obj + "]").val() == string) 
		$(":input[id=" + obj + "]").val("");
	else if($(":input[id=" + obj + "]").val() == "")
		$(":input[id=" + obj + "]").val(string);
	else 
	{
		if(autoselect == true) 
			$(":input[id=" + obj + "]").select();
	}
}

function validate_login() 
{
  var err=0; 
  var msg=""; 
  obj = null;
  var so1=$('#login_username');
  var so2=$('#login_password');

  if(so1.val() == "" || so1.val() == "username"){ err++;msg+="\n Nu ai introdus adresa de e-mail."; if(obj==null){obj=so1;}}
  if(so2.val() == "" || so2.val() == "******"){ err++;msg+="\n Nu ai introdus parola."; if(obj==null){obj=so2;}}

  if(err!=0){alert(msg); if(obj!=null){ obj.focus(); } return false;}else{return true;}
}

function recordOutboundLink(link, category, action) {
    _gat._getTrackerByName()._trackEvent(category, action);
    //setTimeout('document.location = "' + link + '"', 100);
    setTimeout(window.open(link, '_blank', 'toolbar=yes,location=yes,directories=yes,resizable=yes,scrollbars=yes'), 100);
}


//functie care face url_title()-ul din PHP
function url_title(string) {//alert('INTRA: ' + string);
	$.ajax({
		type: "POST",
		url: baseURL + "/unelte/url_title",
		data: "string=" + string.replace('&', ''),
		async: false,
		success: function(msg){//alert('IESE:' + msg);
			urlTitle = msg;
		}
	});
	return urlTitle;
}

//functie care face url_title()-ul din PHP la canal
function channel_url_title(channelId) {//alert('INTRA: ' + channelId);
	$.ajax({
		type: "POST",
		url: baseURL + "/unelte/channel_url_title",
		data: "channel_id=" + channelId,
		async: false,
		success: function(msg){//alert('IESE:' + msg);
			urlTitle = msg;
		}
	});
	return urlTitle;
}

function popup(url, name, width, height, options) {
	var opts = "toolbar=no,status=yes,location=no,menubar=no,resizable=yes";	
	
	opts = "height=" + height + ",width=" + width + ",top="+(((screen.height/2)-height/2)-20)+",left=" + ((screen.width/2)-width/2) + "," + opts;
	window.open(url, 'ana', opts);
	
	return false;
}
//pentru deschiderea altei pagini cu AJAX
function open_comments_page(base_url)
{
   $("#loading").css("display","block");
   $("#commentsContainer").css("display","none");
   $.get(base_url, { }, parseResults, "json");
   $("#loading").fadeOut("slow");
   $("#commentsContainer").css("display","block");
}

//functie care face verificare JS pe email
function email_check(emailStr){
	var regex = /^([a-z0-9._-](\+[a-z0-9])*)+@[a-z0-9.-]+\.[a-z]{2,6}$/i;
	if (regex.test(emailStr)) return true;
	else return false;
}

//functie pentru verificarea formularului de trimitere a comentariilor
function check_form_comments()
{
	var str = '';
	var corect = true;
	
	if($("#forum_name").val() == '') 
	{ 
		corect = false; 
		str += "Nu ati introdus numele!\n";
	}

	validEmail = email_check();
	if(($("#sender_email").val() != "") && (validEmail == false))
	{ 
		corect = false;
		str += 'Adresa de email este invalida!\n';
	}
	
	if($("#forum_comment").val() == '') 
	{ 
		corect = false; 
		str += "Nu ati introdus comentariul!\n";
	}
	
	if($("#forum_captcha").val() == '') 
	{ 
		corect = false; 
		str += "Nu ati introdus codul de securitate!\n";
	}
	
	if(corect == false) alert(str);
	else $("#comments_form").submit(); 
}

//functie pt verificarea trimiterii unei recomandari
function validate_recommend(isAuth, captchaWord)
{
	var msg = "";
	var corect = true;
		
	if($("#sender_name").val() == "") { corect = false; msg += "\nNu ati completat numele dvs!"; }
	if($("#sender_email").val() == "") { corect = false; msg += "\nNu ati completat adresa dvs de e-mail!"; }
	else
	{	
		validEmail = email_check($("#sender_email").val());
		if(validEmail == false)
		{ 
			corect = false;
			msg += 'Adresa de email a dvs este invalida!\n';
		}
	}
	if($("#receiver_name").val() == "") { corect = false; msg += "\nNu ati completat numele prietenului dvs!"; }
	if($("#receiver_email").val() == "") { corect = false; msg += "\nNu ati completat adresa de e-mail a prietenului dvs!"; }
	else
	{	
		validEmail = email_check($("#receiver_email").val());
		if(validEmail == false)
		{ 
			corect = false;
			msg += 'Adresa de email a prietenului este invalida!\n';
		}
	}
	
	if(isAuth == 0){
		if($("#captcha_text").val() == "") { corect = false; msg += "\nNu ati completat textul de verificare!"; }
		if($("#captcha_text").val() != "" && $("#captcha_text").val() != captchaWord) { corect = false; msg += "\nTextul de verificare nu este corect!"; }
	}
	
	if(corect == false) alert(msg);
	else $("#frecomanda").submit();
}

//functie pt verificarea trimiterii unui abuz
function validate_report(){
	var msg = "";
	var corect = true;
	
	if($("#sender_subject").val() == "") { corect = false; msg += "Nu ati completat subiectul!"; }
	if($("#sender_email").val() == "") 
	{
		corect = false;
		msg += "\nNu ati completat adresa de email!";
	}
	else
	{
		validEmail = email_check($("#sender_email").val());
		if(validEmail == false)
		{ 
			corect = false;
			msg += 'Adresa de email este invalida!\n';
		}
	}
	if($("#sender_description").val() == "") { corect = false; msg += "\nNu ati completat descrierea!"; }
	
	if(corect == false) alert(msg);
	else $("#form_raporteaza").submit();
}

function mycarousel_channels_item_load_callback(carousel, state){//alert(carousel.first + ' - ' + carousel.last);
	for (var i = carousel.first; i <= carousel.last; i++) {
		if (carousel.has(i)) {
			continue;
		}
		if (i > mycarousel_channelsItemList.length) {
			break;
		}
		carousel.add(i, mycarousel_channels_get_item_HTML(mycarousel_channelsItemList[i]));
	}
};

function mycarousel_channels_get_item_HTML(item){
    return '<a href="' + item.url + '"' + 'class="fix_dimension" title="' + item.title + '">' + '<img src="' + item.image_src + '"' + ' alt="' + item.title + '"' + '/></a>' + '<a href="' + item.url + '"' + ' title="' + item.title + '">' + item.title + '</a>';
};

var mycarousel_itemList = [];

function mycarousel_itemLoadCallback(carousel, state){		
	for (var i = carousel.first; i <= carousel.last; i++) {
		if (carousel.has(i)) {
			continue;
		}
		if (i > mycarousel_itemList.length) {
			break;
		}
		carousel.add(i, mycarousel_get_item_HTML(mycarousel_itemList[i-1]));
	}
};

function mycarousel_get_item_HTML(item){
    return '<a href="' + item.url + '" target="_blank">' + item.title + '</a>';
};

function create_bookmark_link(url,title){
	if (window.sidebar) { // Mozilla Firefox Bookmark
		window.sidebar.addPanel(title, url,"");
	} else if( window.external ) { // IE Favorite
		window.external.AddFavorite( url, title); }
	else if(window.opera && window.print) { // Opera Hotlist
		return true; }
 }

//pentru schimbarea pe coloane 
function change_display_type(displayType) {
	$.ajax({
		type: "POST",
		url: baseURL + "/tools/change_display_type",
		data: "display_type=" + displayType,
		success: function(data) {
			if(data == "ok") {
				currentLocation = location.href;
				pagePosition = currentLocation.indexOf('/pag-');
				if (pagePosition > 0) {
					newLocation = currentLocation.substr(0, pagePosition);
					location.href = newLocation;
				} else {
					location.reload(true);
				}
			}
		},
		error: function(data) {}
	});
}

//pentru filtrarea itemilor dupa cele 4 tipuri: toate|audio|video|image
function filter_items(itemType) {
	oldPathName = location.pathname;
	if (oldPathName.indexOf("pag-") > -1){
		oldPathName = oldPathName.substr(0, oldPathName.indexOf("pag-"));
	}
	
	pathArray = oldPathName.split('/');
	pathName = '';
	for (i = 0; i < pathArray.length; i++) {
		if (pathArray[i] != '' && pathArray[i] != 'video' && pathArray[i] != 'audio' && pathArray[i] != 'foto') {
			pathName += '/';
			pathName += pathArray[i];
		}
	}

	newPathName = baseURL + pathName;
	if (itemType != 'all') {
		newPathName += '/';
		newPathName += itemType;
	}
	
	location.href = newPathName;	
}

//functie pt verificarea trimiterii unui playlist
function validate_add_playlist()
{
	var msg = "";
	var corect = true;
	
	if(($("#addPAlege").val() == 0) && $("#addPCreeaza").val() == "") { corect = false; msg += "Nici un playlist ales!";}
	
	if(corect == false) alert(msg);
	else $("#form_add_playlist").submit();
}

//functie pentru verificarea editarii unui fisier
function check_edit_file(){
	var corect = true;
	var msg = "";
	
	//if($("#item_title").val() == ''){corect = false; msg += "Nu ati introdus titlul fisierului!\n";}
	//if($("#item_tags").val() == ''){corect = false; msg += "Nu ati introdus tagurile fisierului!\n";}
	//if(($("#item_status").val() == 'private') && ($("#item_password").val() == '')){corect = false; msg += "Nu ati introdus parola!\n";}
	
	//if(corect == false) alert(msg);
	//else{
		$("#send_form").val(1);		
		$("#form_edit_item").submit();		
	//}
}

//functie pentru editarea profilului personal
function check_edit_profile(){
	var msg = "";
	var corect = true;
		
	if($("#pe-adresasite").val() != ""){ 
		validWebsite = web_address_check($("#pe-adresasite").val());
		if(validWebsite == false)
		{ 
			corect = false;
			msg += 'Adresa web introdusa este invalida!\n';
		}
	}
	
	for(i = 1; i <= 4; i++){
		if($("#pe-adresa-" + i).val() != ""){ 
			validWebsite = web_address_check($("#pe-adresa-" + i).val());
			if(validWebsite == false)
			{ 
				corect = false;
				msg += 'Adresa web pentru link-ul ' + i +' este invalida!\n';
			}
		}
	}
	
	if(corect == false) {
		alert(msg);
	}
	else{
		$("#send_form").val(1);
		$("#form_edit_profile").submit();
	}
}

//functie pentru editarea profilului personal - canal
function check_edit_channel_profile(){
	var msg = "";
	var corect = true;
		
	if($("#pe-adresasite").val() != ""){ 
		validWebsite = web_address_check($("#pe-adresasite").val());
		if(validWebsite == false)
		{ 
			corect = false;
			msg += 'Adresa web introdusa este invalida!\n';
		}
	}
		
	if(corect == false) {
		alert(msg);
	}
	else{
		$("#send_form").val(1);
		$("#form_edit_channel_profile").submit();
		}
}

//functie pt verificarea trimiterii unei recomandari de user
function validate_user_recommend(isAuth, captchaWord)
{
	var msg = "";
	var corect = true;
		
	if($("#sender_name").val() == "") { corect = false; msg += "\nNu ati completat numele dvs!"; }
	if($("#sender_email").val() == "") { corect = false; msg += "\nNu ati completat adresa dvs de e-mail!"; }
	else
	{	
		validEmail = email_check($("#sender_email").val());
		if(validEmail == false)
		{ 
			corect = false;
			msg += 'Adresa de email a dvs este invalida!\n';
		}
	}
	if($("#receiver_name").val() == "") { corect = false; msg += "\nNu ati completat numele prietenului dvs!"; }
	if($("#receiver_email").val() == "") { corect = false; msg += "\nNu ati completat adresa de e-mail a prietenului dvs!"; }
	else
	{	
		validEmail = email_check($("#receiver_email").val());
		if(validEmail == false)
		{ 
			corect = false;
			msg += 'Adresa de email a prietenului este invalida!\n';
		}
	}
	
	if(isAuth == 0){
		if($("#captcha_text").val() == "") { corect = false; msg += "\nNu ati completat textul de verificare!"; }
		if($("#captcha_text").val() != "" && $("#captcha_text").val() != captchaWord) { corect = false; msg += "\nTextul de verificare nu este corect!"; }
	}
	
	if(corect == false) {
		alert(msg);
		//return false;
	}
	else $("#form_user_recommend").submit();
	
	return corect;
}

//functie pt validarea cautarii unui item al unui user
function validate_search_profile_item()
{
	var msg = "";
	var corect = true;
		
	//if($("#search_item").val() == "") { corect = false; msg += "Nu ati introdus nimic pentru cautare!"; }
	
	if(corect == false) alert(msg);
	else $("#form_profile_item_filter").submit();
	
	return corect;
}

//functie pt validarea alegerii unui item recomandat: il las sa aleaga doar unul
function validate_choose_profile_item(){
	var msg = "";
	var corect = true;
		
	if(corect == false) alert(msg);
	else{		
		//$("#form_profile_item_recommend").submit();
		window.opener.document.getElementById("pe-recomandare").value = $("#item_url").val();		
		window.opener.document.getElementById("item_recommended_id").value = $("#item_id").val();								
		self.close();
	}
	
	return corect;
}

//functie pt validarea alegerii unui item recomandat: il las sa aleaga doar unul
function validate_choose_channel_item(){
	var msg = "";
	var corect = true;
		
	if(corect == false) alert(msg);
	else{		
		//$("#form_channel_item_recommend").submit();
		window.opener.document.getElementById("pe-rec-"+window.opener.document.getElementById("clicked_recommended").value).value = $("#item_url").val();			
		window.opener.document.getElementById("item_recommended_id_"+window.opener.document.getElementById("clicked_recommended").value).value = $("#item_id").val();
		self.close();
	}
	
	return corect;
}

//functie pt validarea alegerii unui item de raspuns
function validate_choose_item_video_response(){
	var msg = "";
	var corect = true;
		
	//if($("#item_id").val() == 0) { corect = false; msg += "Nu ati ales nici o recomandare!"; }
	
	if(corect == false) alert(msg);
	else{
		$("#form_item_video_response").submit();			
		//alert($("#video_response").val());		
		window.opener.document.getElementById("videoItemInfo").innerHTML = $("#video_response").val();			
		self.close();
	}
	
	return corect;
}

function validate_search_item_video_response(){
	var msg = "";
	var corect = true;
		
	//if($("#search_item").val() == "") { corect = false; msg += "Nu ati introdus nimic pentru cautare!"; }
	
	if(corect == false) alert(msg);
	else $("#form_item_video_response_filter").submit();
	
	return corect;
}

function send_item_response(itemResponseId){
	$("#item_response_id").val(itemResponseId);		
	$("#form_add_video_response").submit();	
}

//functie pt verificarea corectitudinii adresei web
function web_address_check(webAddress){	
	var regex = /^(http:\/\/){0,1}([\w\d]+){0,1}[\.]{0,1}[a-z0-9]+[a-z0-9\-]*\.[a-z]{2,}(\/[^\/><*@%\$~!;:"']*)*$/i;
				
	if (regex.test(webAddress)){
		return true;		
	} 
	else return false;
}

function check_advanced_search(){
	var msg = "";
	var corect = true;
		
	if($("#asCeCauti").val() == ""){corect = false; msg += 'Nu ai completat campul "ce cauti"!';}
	
	if(corect == false){
		alert(msg);
	}
	else{
		$('#advanced_search_form').submit();
	}	
}
function check_add_edit_contest(){
	var msg 	= "";
	var corect 	= true;
		
	if($("#title").val() == ""){corect = false; msg += "Nu ati introdus titlu!\n";}
	if($("#status").val() == ""){corect = false; msg += "Nu ati ales statusul!\n";}
	if($("#date_start").val() == ""){corect = false; msg += "Nu ati introdus data de inceput a concursului!\n";}
	if($("#date_end").val() == ""){corect = false; msg += "Nu ati introdus data de sfarsit a concursului!\n";}
	
	if(corect == false){
		jAlert(msg, "Avertizare");
	}
	else{
		$("#send_add_edit_contest").val('1');
		$("#form_contest").submit();
	}
}

function deleteConfirmation(bannerId){
	if(bannerId > 0){
		jConfirm('Sunteti sigur ca vreti sa stergeti acest banner?', 'Confirmare', function(r){
		    if(r == true){
		    	$.ajax({
					type: "POST",
					url: baseURL + "/banners/delete",
					data: "banner_id=" + bannerId,
					success: function(data) {
						if(data == "ok") {
							location.href = baseURL + "/banners";
						}
					},
					error: function(data) {}
				});
		    }
		});
	}
}

function base64_encode(data){
    var b64 = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";
    var o1, o2, o3, h1, h2, h3, h4, bits, i = 0, ac = 0, enc="", tmp_arr = [];

    if (!data) {
        return data;
    }

    data = this.utf8_encode(data+'');
    
    do { // pack three octets into four hexets
        o1 = data.charCodeAt(i++);
        o2 = data.charCodeAt(i++);
        o3 = data.charCodeAt(i++);

        bits = o1<<16 | o2<<8 | o3;

        h1 = bits>>18 & 0x3f;
        h2 = bits>>12 & 0x3f;
        h3 = bits>>6 & 0x3f;
        h4 = bits & 0x3f;

        // use hexets to index into b64, and append result to encoded string
        tmp_arr[ac++] = b64.charAt(h1) + b64.charAt(h2) + b64.charAt(h3) + b64.charAt(h4);
    } while (i < data.length);
    
    enc = tmp_arr.join('');
    
    switch (data.length % 3) {
        case 1:
            enc = enc.slice(0, -2) + '==';
        break;
        case 2:
            enc = enc.slice(0, -1) + '=';
        break;
    }

    return enc;
}

function utf8_encode ( argString ) {
    var string = (argString+''); // .replace(/\r\n/g, "\n").replace(/\r/g, "\n");

    var utftext = "";
    var start, end;
    var stringl = 0;

    start = end = 0;
    stringl = string.length;
    for (var n = 0; n < stringl; n++) {
        var c1 = string.charCodeAt(n);
        var enc = null;

        if (c1 < 128) {
            end++;
        } else if (c1 > 127 && c1 < 2048) {
            enc = String.fromCharCode((c1 >> 6) | 192) + String.fromCharCode((c1 & 63) | 128);
        } else {
            enc = String.fromCharCode((c1 >> 12) | 224) + String.fromCharCode(((c1 >> 6) & 63) | 128) + String.fromCharCode((c1 & 63) | 128);
        }
        if (enc !== null) {
            if (end > start) {
                utftext += string.substring(start, end);
            }
            utftext += enc;
            start = end = n+1;
        }
    }

    if (end > start) {
        utftext += string.substring(start, string.length);
    }

    return utftext;
}

function base64_decode (data) {
    var b64 = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";
    var o1, o2, o3, h1, h2, h3, h4, bits, i = 0, ac = 0, dec = "", tmp_arr = [];

    if (!data) {
        return data;
    }

    data += '';

    do {  // unpack four hexets into three octets using index points in b64
        h1 = b64.indexOf(data.charAt(i++));
        h2 = b64.indexOf(data.charAt(i++));
        h3 = b64.indexOf(data.charAt(i++));
        h4 = b64.indexOf(data.charAt(i++));

        bits = h1<<18 | h2<<12 | h3<<6 | h4;

        o1 = bits>>16 & 0xff;
        o2 = bits>>8 & 0xff;
        o3 = bits & 0xff;

        if (h3 == 64) {
            tmp_arr[ac++] = String.fromCharCode(o1);
        } else if (h4 == 64) {
            tmp_arr[ac++] = String.fromCharCode(o1, o2);
        } else {
            tmp_arr[ac++] = String.fromCharCode(o1, o2, o3);
        }
    } while (i < data.length);

    dec = tmp_arr.join('');
    dec = this.utf8_decode(dec);

    return dec;
}

function utf8_decode ( str_data ) {
    var tmp_arr = [], i = 0, ac = 0, c1 = 0, c2 = 0, c3 = 0;
    
    str_data += '';
    
    while ( i < str_data.length ) {
        c1 = str_data.charCodeAt(i);
        if (c1 < 128) {
            tmp_arr[ac++] = String.fromCharCode(c1);
            i++;
        } else if ((c1 > 191) && (c1 < 224)) {
            c2 = str_data.charCodeAt(i+1);
            tmp_arr[ac++] = String.fromCharCode(((c1 & 31) << 6) | (c2 & 63));
            i += 2;
        } else {
            c2 = str_data.charCodeAt(i+1);
            c3 = str_data.charCodeAt(i+2);
            tmp_arr[ac++] = String.fromCharCode(((c1 & 15) << 12) | ((c2 & 63) << 6) | (c3 & 63));
            i += 3;
        }
    }

    return tmp_arr.join('');
}
