// JavaScript Document
function fSetAction()
{	
	var isValid=true;
	document.getElementById('action').value = '2';
	return isValid;
}
function popitup(url,x,y) {
	y+=20;
	x+=20;
	source = '/show_photo.php?url=' + url;
	newwindow=window.open(source,'okienko','height='+y+',width='+x+',scrollbars=yes,resizable=yes');
	if (window.focus) {newwindow.focus()}
	return false;
}

function count_sign(obj,show){
	result = true;
	//alert(obj.value.length);
	if(obj.value.length > 350){
		obj.value = obj.value.substr(0,350);
		result = false;
	}
	else {
		document.getElementById(show).value = (350 - obj.value.length);
	}
	return result;
}
function count_sign(obj,show,p_length){
	result = true;
	//alert(obj.value.length);
	if(obj.value.length > p_length){
		obj.value = obj.value.substr(0,p_length);
		result = false;
	}
	else {
		document.getElementById(show).value = (p_length - obj.value.length);
	}
	return result;
}

// =========================================
// JavaScript Document
var http_request = false;

function setLoading(status) {
	document.getElementById('loading_p').style.visibility=status==false?'hidden':'visible';
	document.getElementById('loading_p').style.display=status==false?'none':'inline';
}

function makeRequest(url,tag_id) {
        http_request = false;
        setLoading(true);
        if (window.XMLHttpRequest) { // Mozilla, Safari,...
            http_request = new XMLHttpRequest();
            if (http_request.overrideMimeType) {
                http_request.overrideMimeType('text/xml');
            }
        } else if (window.ActiveXObject) { // IE
            try {
                http_request = new ActiveXObject("Msxml2.XMLHTTP");
            } catch (e) {
                try {
                    http_request = new ActiveXObject("Microsoft.XMLHTTP");
                } catch (e) {}
            }
        }
	if (!http_request) {
		document.getElementById(tag_id).innerHTML ='Не работает XMLHTTP.';
		return false;
	}

	http_request.onreadystatechange = function() {alertContents(http_request,tag_id);};
  http_request.open('GET', url, true);
	http_request.send(null);
}

function alertContents(http_request,tag_id) {
	if (http_request.readyState == 4) {
		if (http_request.status == 200) {
			 document.getElementById(tag_id).innerHTML = http_request.responseText;
			 //alert (http_request.responseText);
			 //alert(document.getElementById(tag_id).innerHTML)
		} else {
			document.getElementById(tag_id).innerHTML ='Ошибка на сервере. Попробуйте попозже.';
		}
		setLoading(false);
	}
	else{
	  //if (http_request.readyState == 1) {
		//document.getElementById(tag_id).innerHTML = "Ĺadowanie ...";	
	}
}


function stripHTML(oldString) {
  return oldString.replace(/<&#91;^>&#93;*>/g, "");  
}
function addslashes( str ) {
    // http://kevin.vanzonneveld.net
    // +   original by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
    // +   improved by: Ates Goral (http://magnetiq.com)
    // +   improved by: marrtins
    // *     example 1: addslashes("kevin's birthday");
    // *     returns 1: "kevin\'s birthday"
 
    return str.replace('/(["\'\])/g', "\\$1").replace('/\0/g', "\\0");
}
// --------- functions ---------    
function change(id){
     ID = document.getElementById(id);
     if(ID.style.display == "")
          ID.style.display = "none";
     else
          ID.style.display = "";
}
function sentMail(  text_id
                  , item_id
                  , mailFrom
                  , post_id
                  , confirmCode
                  ){
                  
      ID_show = document.getElementById(item_id);
      ID_show.style.display="none";
      //document.getElementById(mailFrom).style.display="none";
      //alert (document.getElementById(text_id).value);
      //alert (base64_encode(document.getElementById(text_id).value));
      //change(hide_id);
      //var param;
      param = '?title=' + addslashes(stripHTML(document.getElementById(text_id).value))
              + '&mail=' + stripHTML(document.getElementById(mailFrom).value)
              + '&post=' + post_id
              + '&code=' + stripHTML(document.getElementById(confirmCode).value)
              ;
      //alert(param);
      //ID_show.style.visibility='hidden';
      //alert(document.getElementById(text_id).value);
      //alert(document.getElementById(mailFrom).value);    
      //alert(document.getElementById(confirmCode).value);
      if (document.getElementById(text_id).value.length > 5 
          && 
          document.getElementById(mailFrom).value.length > 5
          && 
          document.getElementById(confirmCode).value.length == 5
          ){
           makeRequest('/sentMailToUser.php' + param, item_id);
           document.getElementById('mail_to_user').style.display="none"; 
           ID_show.style.display="inline";
           ID_show.style.border="1px solid green";
           ID_show.style.color="green";
      }
      else {
        if (document.getElementById(confirmCode).value.length < 5) {
          ID_show.innerHTML = 'Перепишите текст с рисунка ...';
          //alert('1');  
        }
        if (document.getElementById(text_id).value.length < 5) {
          ID_show.innerHTML = 'Пустое сообщение ... Заполните текстовое поле.';
          //alert('2'); 
        }
        if (document.getElementById(mailFrom).value.length < 5) {
          ID_show.innerHTML = 'Укажите ваш e-mail.';
          //alert('3'); 
        }
        ID_show.style.border="1px solid red";
        ID_show.style.color="red";
        ID_show.style.display="inline";        
      } 
      
} 
function clear_innerHTML(id){
     document.getElementById(id).innerHTML = "";
}

function showMail(){
  if (document.getElementById('mail_to_user').style['display']=='none') {
    document.getElementById('mail_to_user').style['display']='block';
  }
  else {
    document.getElementById('mail_to_user').style['display']='none';
  }
  if (document.getElementById('msg').style['display']=='none' 
      && document.getElementById('msg').value > 3) {
    document.getElementById('msg').style['display']='block';
  }
  else {
    document.getElementById('msg').style['display']='none';
  }
  return true;
}
function urlDecode(str){
    str=str.replace(new RegExp('\\+','g'),' ');
    return unescape(str);
}
function urlEncode(str){
    str=escape(str);
    str=str.replace(new RegExp('\\+','g'),'%2B');
    return str.replace(new RegExp('%20','g'),'+');
}
/*
function base64_encode( data ) {
    // http://kevin.vanzonneveld.net
    // +   original by: Tyler Akins (http://rumkin.com)
    // +   improved by: Bayron Guevara
    // +   improved by: Thunder.m
    // +   improved by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)        
    // -    depends on: utf8_encode
    // *     example 1: base64_encode('Kevin van Zonneveld');
    // *     returns 1: 'S2V2aW4gdmFuIFpvbm5ldmVsZA=='
 
    // mozilla has this native
    // - but breaks in 2.0.0.12!
    //if (typeof window['atob'] == 'function') {
    //    return atob(data);
    //}
        
    var b64 = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";
    var o1, o2, o3, h1, h2, h3, h4, bits, i = ac = 0, enc="", tmp_arr = [];
    data = 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 ( str_data ) {
    // http://kevin.vanzonneveld.net
    // +   original by: Webtoolkit.info (http://www.webtoolkit.info/)
    // +   improved by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)        
    // *     example 1: utf8_encode('Kevin van Zonneveld');
    // *     returns 1: 'Kevin van Zonneveld'
 
    str_data = str_data.replace(/\r\n/g,"\n");
    var tmp_arr = [], ac = 0;
 
    for (var n = 0; n < str_data.length; n++) {
        var c = str_data.charCodeAt(n);
        if (c < 128) {
            tmp_arr[ac++] = String.fromCharCode(c);
        } else if((c > 127) && (c < 2048)) {
            tmp_arr[ac++] = String.fromCharCode((c >> 6) | 192);
            tmp_arr[ac++] = String.fromCharCode((c & 63) | 128);
        } else {
            tmp_arr[ac++] = String.fromCharCode((c >> 12) | 224);
            tmp_arr[ac++] = String.fromCharCode(((c >> 6) & 63) | 128);
            tmp_arr[ac++] = String.fromCharCode((c & 63) | 128);
        }
    }
    
    return tmp_arr.join('');
}

String.prototype.base64_encode=function()
  {
    var ascii=new String("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/");
    var encode=new String();
    var bits,dual,i=0;
//data = utf8_encode(data);



    while(this.length>=i)
    {
      bits=(this.charCodeAt(i++) & 0xff) <<16
          | (this.charCodeAt(i++) & 0xff) <<8
         | this.charCodeAt(i++) & 0xff;

       encode+= ascii.charAt((bits & 0x00fc0000) >>18)
              + ascii.charAt((bits & 0x0003f000) >>12)
              + ascii.charAt((bits & 0x00000fc0) >> 6)
              + ascii.charAt((bits & 0x0000003f));
    }

   if((this.length-i)>0 && (this.length-i)<3)
    {
      dual=Boolean(this.length -i -1);
      bits=((this.charCodeAt(i++) & 0xff) <<16) | (dual ? (this.charCodeAt(i) & 0xff) <<8 : 0);

       encode+= ascii.charAt((bits & 0x00fc0000) >>18)
             + ascii.charAt((bits & 0x0003f000) >>12)
              + (dual ? ascii.charAt((bits & 0x00000fc0) >>6) : '=')
               + '=';
    }
    return encode;
  };
  */
