// JavaScript Document

//bof Period posilanija signala o prisutstvii na server
var stopscripts = 0;
var Im_Here_Period_MS = 20000;
var Im_Here_Period_S = 20;

var Who_Invite_Me_Period_MS = 20000;
var Who_Invite_Me_Period_S = 20;

var Online_Girls_Period_MS = 10000;
var Online_Girls_Period_S = 10;

var Girlsoffline_Period_MS = 10000;
var Girlsoffline_Period_S = 10;

var Myfavoritesoffline_Period_MS = 10000;
var Myfavoritesoffline_Period_S = 10;

var Favorites_Period_MS = 10000;
var Favorites_Period_S = 10;

var Invite_Chat_Page_Period_MS = 10000;
var Invite_Chat_Page_Period_S = 10;
var closeIfManyClient_Period_MS = 1000;
var closeIfManyClient_Period_S = 1;

var LoginCheck_Period_MS = 2000;
var LoginCheck_Period_S = 2;

//Period obnovlenija informacii v chate li devka
var GirlChatageoenPeriod_MS = 15000;
var GirlChatageoenPeriod_S = 15;
//Period proverci informacii v chate li devka

var GirlIsChatageoenPeriod_MS = 8000;
var GirlIsChatageoenPeriod_S = 8;

//Period obnovlenija informacii v chate li devka
var GirlsShowPeriod_MS = 5000;
var GirlsShowPeriod_S = 5;

var constLast = 800;
var constLast_S = 0.8;

//###################### bof need for json updater block ############################
var ClientsForModelPeriod_MS = 10000;
var ClientsForModelPeriod_S = 10;
//###################### eof need for json updater block ############################


function find_trans_blocks(text) {
	var bloks = new Array();
	var newtext = "";
	
	var response = new Object();
	
	var str = text;
	var re = new RegExp("--\\[(.*?)\\]--", 'gi');
	var res;
	while ( (res = re.exec(str)) != null) {
	  var blok = new Object();
	  
	  var str_sub = res[1];
	  var re_sub = new RegExp("(.*),(.*)@:(.*)", 'gi'); 
	  var res_sub = re_sub.exec(str_sub);
	  if (res_sub != null) { 
	  	blok.type = 'dual';
		blok.mainkey = res_sub[1];
		blok.subkey = res_sub[2];
		newtext = newtext + res_sub[3];
		//alert(res_sub[1] + '***' + res_sub[2] + '***' + res_sub[3]);
	  } else {
		 	var re_sub_trunked = new RegExp("(.*)@:(.*)", 'gi'); 
	  		var res_sub_trunked = re_sub_trunked.exec(str_sub);
			if (res_sub_trunked != null) {
				blok.type = 'unar';
				blok.mainkey = res_sub_trunked[1];
				newtext = newtext + res_sub_trunked[2];
				//alert(res_sub_trunked[1] + '+++' + res_sub_trunked[2]);
			}
	  }
		bloks.unshift(blok);
	}
	
	response.bloks = bloks;
	response.newtext = newtext;
	
	
	return response;
}

function add_trans_buttons() {
	jQuery('a').each(function(index) {
		var el = jQuery(this);
		var title_attr = el.attr('title');
		var pseudoel = jQuery('<div>' + title_attr + '</div>');
		if ((pseudoel.html() != null) && (pseudoel.html() != '') && (pseudoel.html() != 'undefined')) {
				
				pseudoel.find('translattag').each(function(index2) {
						
						var el2 = jQuery(this);
						var mainkey = el2.attr('mainkey');
						var subkey = '';
						
						if ((el2.attr('subkey') != null) && (el2.attr('subkey') != 'undefined') && (el2.attr('subkey') != '')) {					
								subkey = el2.attr('subkey');
								el.prepend(' <a onclick="translate_this_dual(\'' + mainkey + '\', \'' + subkey + '\', event)" class="translate_link translate_link_text"  >t</a> ');
						} else {
								el.prepend(' <a onclick="translate_this_unar(\'' + mainkey + '\', event)" class="translate_link translate_link_text"  >t</a> ');	
						}
						el.addClass('buttonedtrans-a-title-' + mainkey + subkey);
						el.attr('title', el2.find('trascontent').html());
				});	
		}
	});
	
	var titleEl = jQuery('title');
	var title_text_pre = titleEl.html();
	
	var title_text = title_text_pre.replace(new RegExp("&lt;",'g'), "<");
	var title_text = title_text.replace(new RegExp("&gt;",'g'), ">");
	
	
	
	var pseudoel = jQuery('<div>' + title_text + '</div>');
	if ((pseudoel.html() != null) && (pseudoel.html() != '') && (pseudoel.html() != 'undefined')) {
		
		pseudoel.find('translattag').each(function(index2) {
						
						var el2 = jQuery(this);
						var mainkey = el2.attr('mainkey');
						var subkey = '';
						
						if ((el2.attr('subkey') != null) && (el2.attr('subkey') != 'undefined') && (el2.attr('subkey') != '')) {					
								subkey = el2.attr('subkey');
								jQuery('body').prepend(' <a onclick="translate_this_dual(\'' + mainkey + '\', \'' + subkey + '\', event)" class="translate_link translate_link_text"  >Title</a> ');
						} else {
								jQuery('body').prepend(' <a onclick="translate_this_unar(\'' + mainkey + '\', event)" class="translate_link translate_link_text"  >Title</a> ');	
						}						
						titleEl.text(el2.find('trascontent').html());
		});	
	}


	jQuery('input').each(function(index) {
		var el = jQuery(this);
		var need_val = el.val();
		var pseudoel = jQuery('<div>' + need_val + '</div>');
		if ((pseudoel.html() != null) && (pseudoel.html() != '') && (pseudoel.html() != 'undefined')) {
				
				pseudoel.find('translattag').each(function(index2) {
						
						var el2 = jQuery(this);
						var mainkey = el2.attr('mainkey');
						var subkey = '';
						
						if ((el2.attr('subkey') != null) && (el2.attr('subkey') != 'undefined') && (el2.attr('subkey') != '')) {					
								subkey = el2.attr('subkey');
								el.before(' <a onclick="translate_this_dual(\'' + mainkey + '\', \'' + subkey + '\', event)" class="translate_link translate_link_text"  >i</a> ');
						} else {
								el.before(' <a onclick="translate_this_unar(\'' + mainkey + '\', event)" class="translate_link translate_link_text"  >i</a> ');	
						}
						el.addClass('buttonedtrans-input-val-' + mainkey + subkey);
						el.val(el2.find('trascontent').html());
				});	
		}
	});
	
	jQuery('translattag').each(function(index) {    		
			var el = jQuery(this);
			var mainkey = el.attr('mainkey');
			var subkey = '';
			
			if ((el.attr('subkey') != null) && (el.attr('subkey') != 'undefined') && (el.attr('subkey') != '')) {					
					subkey = el.attr('subkey');
					el.prepend(' <a onclick="translate_this_dual(\'' + mainkey + '\', \'' + subkey + '\', event)" class="translate_link translate_link_text"  >e</a> ');
			} else {
					el.prepend(' <a onclick="translate_this_unar(\'' + mainkey + '\', event)" class="translate_link translate_link_text"  >e</a> ');	
			}
			el.addClass('buttonedtrans-' + mainkey + subkey);
			
	});	
	
	
	jQuery('translateable').each(function(index) {    		
			var el = jQuery(this);
			var table = el.attr('table');
			var keys = el.attr('keys');
			var field = el.attr('field');
			el.prepend(' <a onclick=\'translate_this_dual_tab("' + table + '", "' + encodeURIComponent(keys) + '", "' + field + '",  event)\' class="translate_link translate_link_text">Tl</a> ');
			el.addClass('buttonedtrans-tab-val_' + table + '-' + field + '-' + base64_encode_rtuncked(encodeURIComponent(keys)));
	});		

	
	
	
	
}

function translate_this_unar(mainkey, e) {
	if(!e) e = window.event;
	if(e.stopPropagation) {e.stopPropagation();} else {e.cancelBubble = true;}
	if(e.preventDefault) {e.preventDefault();} else {e.returnValue = false;}
	
	addr = 'http://' + server_name + '/ajax_show_lang_value.php';
	
	jQuery.ajax({
		type: "GET",
		url:  addr + '?mainkey=' + mainkey,
		data: '',
		success: function(topmiladyresponse){					  
			var topmiladyresults = eval("(" + topmiladyresponse + ")");			
				//alert(topmiladyresults.lang_value);	
				jQuery('#ajaxtranslator .translator_mainkey').val(topmiladyresults.mainkey);
				jQuery('#ajaxtranslator .translator_subkey').val(topmiladyresults.subkey);				
				jQuery('#ajaxtranslator .translator_value').val(topmiladyresults.lang_value);
				jQuery('#ajaxtranslator').jqmShow();
				
							
				
		}		
	})	
	return false;	
}

function translate_this_dual(mainkey, subkey, e) {
	if(!e) e = window.event;
	if(e.stopPropagation) {e.stopPropagation();} else {e.cancelBubble = true;}
	if(e.preventDefault) {e.preventDefault();} else {e.returnValue = false;}
	
	addr = 'http://' + server_name + '/ajax_show_lang_value.php';
	jQuery.ajax({
		type: "GET",
		url:  addr + '?mainkey=' + mainkey + '&subkey=' + subkey,
		data: '',
		success: function(topmiladyresponse){					  
			var topmiladyresults = eval("(" + topmiladyresponse + ")");			
				//alert(topmiladyresults.lang_value);	
				jQuery('#ajaxtranslator .translator_mainkey').val(topmiladyresults.mainkey);
				jQuery('#ajaxtranslator .translator_subkey').val(topmiladyresults.subkey);				
				jQuery('#ajaxtranslator .translator_value').val(topmiladyresults.lang_value);
				jQuery('#ajaxtranslator').jqmShow();			
		}		
	})	
	return false;	
}



function translate_this_dual_tab(table, keys, field, e) {
	if(!e) e = window.event;
	if(e.stopPropagation) {e.stopPropagation();} else {e.cancelBubble = true;}
	if(e.preventDefault) {e.preventDefault();} else {e.returnValue = false;}
	
	addr = 'http://' + server_name + '/ajax_show_tab_value.php';
	jQuery.ajax({
		type: "GET",
		url:  addr + '?table=' + table + '&keys=' + keys + '&field=' + field,
		data: '',
		success: function(topmiladyresponse){					  
			
			var topmiladyresults = eval("(" + topmiladyresponse + ")");			
				
				
				
				jQuery('#ajaxtranslator_tab .translator_tab_table').val(topmiladyresults.table);
				jQuery('#ajaxtranslator_tab .translator_tab_field').val(topmiladyresults.field);
				jQuery('#ajaxtranslator_tab .translator_tab_keys').val(topmiladyresults.keys);
				jQuery('#ajaxtranslator_tab .translator_tab_value').val(topmiladyresults.value);
				//jQuery('#ajaxtranslator .translator_value').val(topmiladyresults.lang_value);
			
				jQuery('#ajaxtranslator_tab').jqmShow();
								
		}		
	})	
	return false;	
}

function sendLangValue() {
	
	var mainkey = jQuery('#ajaxtranslator .translator_mainkey').val();
	var subkey = jQuery('#ajaxtranslator .translator_subkey').val();
	var lang_value_pre = jQuery("#translator_value").val();
	
	
	
	
	lang_value = lang_value_pre;
	
	
	
	addr = 'http://' + server_name + '/ajax_set_lang_value.php';
	
	
	var lang = jQuery('#ajaxtranslator .translator_lang').val();
	
	jQuery.ajax({
		type: "POST",
		url:  addr,
		data: 'mainkey=' + encodeURIComponent(mainkey) + '&subkey=' + encodeURIComponent(subkey) + '&lang_value=' + encodeURIComponent(lang_value)+ '&lang=' + lang,
		success: function(topmiladyresponse){					  
			var topmiladyresults = eval("(" + topmiladyresponse + ")");			
				
				
				jQuery('#ajaxtranslator .translator_mainkey').val(topmiladyresults.mainkey);
				jQuery('#ajaxtranslator .translator_subkey').val(topmiladyresults.subkey);				
				jQuery('#ajaxtranslator .translator_value').val(topmiladyresults.lang_value);
				jQuery('.buttonedtrans-' + mainkey + subkey + ' trascontent').html(topmiladyresults.lang_value);
				jQuery('.buttonedtrans-a-title-' + mainkey + subkey).attr('title', topmiladyresults.lang_value);
				jQuery('.buttonedtrans-input-val-' + mainkey + subkey).val(topmiladyresults.lang_value);
				
				
				jQuery('#ajaxtranslator').jqmHide();
		}		
	})
	
}


function base64_decode( data ) {	
	// Decodes data encoded with MIME base64
	// 
	// +   original by: Tyler Akins (http://rumkin.com)


	var b64 = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";
	var o1, o2, o3, h1, h2, h3, h4, bits, i=0, enc='';

	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)	  enc += String.fromCharCode(o1);
		else if (h4 == 64) enc += String.fromCharCode(o1, o2);
		else			   enc += String.fromCharCode(o1, o2, o3);
	} while (i < data.length);

	return enc;
}

function base64_encode( data ) {    

    data = escape(data);  
 
    var b64 = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";
    var o1, o2, o3, h1, h2, h3, h4, bits, i=0, enc='';
 
    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
        enc += b64.charAt(h1) + b64.charAt(h2) + b64.charAt(h3) + b64.charAt(h4);
    } while (i < data.length);
 
    switch( data.length % 3 ){
        case 1:
            enc = enc.slice(0, -2) + '==';
        break;
        case 2:
            enc = enc.slice(0, -1) + '=';
        break;
    }
 
    return enc;
} 


function base64_encode_rtuncked( data ) {    

    data = escape(data);  
 
    var b64 = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";
    var o1, o2, o3, h1, h2, h3, h4, bits, i=0, enc='';
 
    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
        enc += b64.charAt(h1) + b64.charAt(h2) + b64.charAt(h3) + b64.charAt(h4);
    } while (i < data.length);
 
    switch( data.length % 3 ){
        case 1:
            enc = enc.slice(0, -2);
        break;
        case 2:
            enc = enc.slice(0, -1);
        break;
    }
 
    return enc;
} 






function sendTabValue() {
	var table = jQuery('#ajaxtranslator_tab .translator_tab_table').val();
	var field = jQuery('#ajaxtranslator_tab .translator_tab_field').val();
	var keys = jQuery('#ajaxtranslator_tab .translator_tab_keys').val();
	
	var tab_value = jQuery('#ajaxtranslator_tab .translator_tab_value').val();
	

	addr = 'http://' + server_name + '/ajax_set_tab_value.php';
	
	jQuery.ajax({
		type: "POST",
		url:  addr,
		data: 'table=' + encodeURIComponent(table) + '&field=' + encodeURIComponent(field) + '&keys=' + encodeURIComponent(keys) + '&value=' + encodeURIComponent(tab_value),
		success: function(topmiladyresponse){					  
			var topmiladyresults = eval("(" + topmiladyresponse + ")");			
				//alert(topmiladyresults.lang_value);	
				
				
				jQuery('#ajaxtranslator_tab .translator_tab_table').val(topmiladyresults.table);
				jQuery('#ajaxtranslator_tab .translator_tab_field').val(topmiladyresults.field);
				jQuery('#ajaxtranslator_tab .translator_tab_keys').val(topmiladyresults.keys);
				jQuery('#ajaxtranslator_tab .translator_tab_value').val(topmiladyresults.value);
				
				jQuery('.buttonedtrans-tab-val_' + table + '-' + field + '-' + base64_encode_rtuncked(encodeURIComponent(keys)) + ' trascontent').html(topmiladyresults.value);
					
				jQuery('#ajaxtranslator_tab').jqmHide();
		}		
	})
}

window.replaceRussianSymbol = [];


window.photo_must_height = Math.ceil((jQuery(window).height() - 200) / 100) * 100; 
window.photo_must_width =  Math.ceil((jQuery(window).width() - 80) / 100) * 100;

jQuery(window).resize(function() {
	 window.photo_must_height = Math.ceil((jQuery(window).height() - 200) / 100) * 100; 
	 window.photo_must_width = Math.ceil((jQuery(window).width() - 80) / 100) * 100; 
})

