/* General scripts */

var window_on_load = new Array();

window.onload = function() {
    for(var i=0; i<window_on_load.length; i++)
        window_on_load[i]();
}

function set_action() {
   
    var page = (arguments.length >= 1) ? arguments[0] : '';
    var action = (arguments.length >= 2) ? arguments[1] : '';
    var get_params = ((arguments.length >= 3) && (arguments[2] != '')) ? arguments[2] : '';
    var script_name = ((arguments.length >= 4) && (arguments[3] != '')) ? arguments[3] : 'index.php';
    var form_name = ((arguments.length >= 5) && (arguments[4] != '')) ? arguments[4] : 'data';
    var target = ((arguments.length >= 6) && (arguments[5] != '')) ? arguments[5] : '_self';
    
    var enc_id = get_cookie('encoding_id');
    var lang = '';
    if(enc_id == 1) lang = 'en';
    else if(enc_id == 15) lang = 'lv';
    else if(enc_id == 17) lang = 'ru';
    
    document.getElementById(form_name).action = '';
    document.getElementById(form_name).target = target;

    if(mod_rewrite)
        document.getElementById(form_name).action = rewrite_base + (lang==''?'':lang+'/') + ((page=='')?"":page+"/"+((action=='')?"":action+"/")) + script_name + (get_params==''?"":"?"+get_params);
    else
        document.getElementById(form_name).action = rewrite_base + script_name + (get_params!='' || page!='' || action !='' ? "?" + get_params + ((page=='')?"":(get_params==''?"":"&")+"pg="+page) + ((action=='')?"":(get_params==''&&page==''?"":"&")+"act="+action) : "");
    
    //alert(document.getElementById(form_name).action);
}

// new one
function submit_action() {
   
    var page = (arguments.length >= 1) ? arguments[0] : '';
    var action = (arguments.length >= 2) ? arguments[1] : '';
    var get_params = (arguments.length >= 3) ? arguments[2] : '';
    var script_name = (arguments.length >= 4) ? arguments[3] : 'index.php';
    var form_name = (arguments.length >= 5) ? arguments[4] : 'data';
    var is_parent = (arguments.length >= 6) ? arguments[5] : false;

    var enc_id = get_cookie('encoding_id');
    var lang = '';
    if(enc_id == 1) lang = 'en';
    else if(enc_id == 15) lang = 'lv';
    else if(enc_id == 17) lang = 'ru';
    
    if(is_parent) {
        window.opener.document.getElementById(form_name).action = '';

        if(mod_rewrite)
            window.opener.document.getElementById(form_name).action = rewrite_base + (lang==''?'':lang+'/') + ((page=='')?"":page+"/"+((action=='')?"":action+"/")) + script_name + (get_params==''?"":"?"+get_params);
        else
            window.opener.document.getElementById(form_name).action = rewrite_base + script_name + (get_params!='' || page!='' || action !='' ? "?" + get_params + ((page=='')?"":(get_params==''?"":"&")+"pg="+page) + ((action=='')?"":(get_params==''&&page==''?"":"&")+"act="+action) : "");

        window.opener.document.getElementById(form_name).submit();

    } else {

        document.getElementById(form_name).action = '';
        if(mod_rewrite)
            document.getElementById(form_name).action = rewrite_base + (lang==''?'':lang+'/') + ((page=='')?"":page+"/"+((action=='')?"":action+"/")) + script_name + (get_params==''?"":"?"+get_params);
        else
            document.getElementById(form_name).action = rewrite_base + script_name + (get_params!='' || page!='' || action !='' ? "?" + get_params + ((page=='')?"":(get_params==''?"":"&")+"pg="+page) + ((action=='')?"":(get_params==''&&page==''?"":"&")+"act="+action) : "");

        document.getElementById(form_name).submit();
   }
}

function only_one_checked() {
    var elem = (arguments.length >= 1) ? arguments[0] : '';
    var form_id = (arguments.length >= 2) ? arguments[1] : 'data';

    var num = 0;
    with(document.getElementById(form_id)) {
        if(typeof(elements[elem]) != "object") return false;
        if(!elements[elem].length) num = (elements[elem].checked) ? 1:0;
        else {
            for(var i=0; i<elements[elem].length; i++) {
                num += (elements[elem][i].checked) ? 1:0;
                if(num>1) break;
            }
        }
    }

    return num==1;
}

function get_checked_id() {
    var elem = (arguments.length >= 1) ? arguments[0] : '';
    var form_id = (arguments.length >= 2) ? arguments[1] : 'data';

    var num = 0;
    with(document.getElementById(form_id)) {

        if(typeof(elements[elem]) != "object") 
            return 0;

        if(!elements[elem].length)
            return elements[elem].checked ? elements[elem].value : 0;
        else 
            for(var i=0; i<elements[elem].length; i++) 
                if(elements[elem][i].checked)
                    return elements[elem][i].value;
    }

    return 0;
}

function select_checkboxes() {

    var elem = (arguments.length >= 1) ? arguments[0] : '';
    var flag = (arguments.length >= 2) ? arguments[1] : true;
    var form_id = (arguments.length >= 3) ? arguments[2] : 'data';

    with(document.getElementById(form_id)) {
        if(typeof(elements[elem]) != "object") return;
        
        if(!elements[elem].length) elements[elem].checked = flag;
        else for(var i=0; i<elements[elem].length; i++) elements[elem][i].checked = flag;
    }
}

function get_checked_values() {
    var elem = (arguments.length >= 1) ? arguments[0] : '';
    var form_id = (arguments.length >= 2) ? arguments[1] : 'data';

    var result = new Array();
    var cur_pos = 0;
    
    with(document.getElementById(form_id)) {

        if(typeof(elements[elem]) != "object") return result;
        
        if(!elements[elem].length && elements[elem].checked) 
            result[cur_pos++] = elements[elem].value;
            
        else for(var i=0; i<elements[elem].length; i++) 
            if(elements[elem][i].checked) 
                result[cur_pos++] = elements[elem][i].value;
    }

    return result;
}

function redirect(url) {
    //if(typeof(rewrite_base) == "string") url = rewrite_base+pg;
    window.location.href = url;
}

function lredirect() {
    
    var page = (arguments.length >= 1) ? arguments[0] : '';
    var action = (arguments.length >= 2) ? arguments[1] : '';
    var get_params = (arguments.length >= 3) ? arguments[2] : '';
    var script_name = (arguments.length >= 4) ? arguments[3] : 'index.php';
    var is_parent = (arguments.length >= 5) ? arguments[4] : false;
    
    if(page == "error") page = "err";
    
    var enc_id = get_cookie('encoding_id');
    var lang = '';
    if(enc_id == 1) lang = 'en';
    else if(enc_id == 15) lang = 'lv';
    else if(enc_id == 17) lang = 'ru';
    
    if(!is_parent) {
        if(mod_rewrite)
            window.location.href = rewrite_base + (lang==''?'':lang+'/') + ((page=='')?"":page+"/"+((action=='')?"":action+"/")) + script_name + (get_params==''?"":"?"+get_params);
        else
            window.location.href = rewrite_base + script_name + (get_params!='' || page!='' || action !='' ? "?" + get_params + ((page=='')?"":(get_params==''?"":"&")+"pg="+page) + ((action=='')?"":(get_params==''&&page==''?"":"&")+"act="+action) : "");
    
    } else {
        if(mod_rewrite)
            window.opener.location.href = rewrite_base + (lang==''?'':lang+'/') + ((page=='')?"":page+"/"+((action=='')?"":action+"/")) + script_name + (get_params==''?"":"?"+get_params);
        else
            window.opener.location.href = rewrite_base + script_name + (get_params!='' || page!='' || action !='' ? "?" + get_params + ((page=='')?"":(get_params==''?"":"&")+"pg="+page) + ((action=='')?"":(get_params==''&&page==''?"":"&")+"act="+action) : "");
    }
}

function gen_local_url() {
    
    var page = (arguments.length >= 1) ? arguments[0] : '';
    var action = (arguments.length >= 2) ? arguments[1] : '';
    var get_params = (arguments.length >= 3) ? arguments[2] : '';
    var script_name = (arguments.length >= 4) ? arguments[3] : 'index.php';
    var url = '';
    
    if(page == "error") page = "err";
    
    var enc_id = get_cookie('encoding_id');
    var lang = '';
    if(enc_id == 1) lang = 'en';
    else if(enc_id == 15) lang = 'lv';
    else if(enc_id == 17) lang = 'ru';
    
    if(mod_rewrite)
        url = rewrite_base + (lang==''?'':lang+'/') + ((page=='')?"":page+"/"+((action=='')?"":action+"/")) + script_name + (get_params==''?"":"?"+get_params);
    else
        url = rewrite_base + script_name + (get_params!='' || page!='' || action !='' ? "?" + get_params + ((page=='')?"":(get_params==''?"":"&")+"pg="+page) + ((action=='')?"":(get_params==''&&page==''?"":"&")+"act="+action) : "");

    return url;
}

function check_item(elem, item_id) {
    var elem = (arguments.length >= 1) ? arguments[0] : '';
    var item_id = (arguments.length >= 2) ? arguments[1] : '';
    var form_id = (arguments.length >= 3) ? arguments[2] : 'data';

    with(document.getElementById(form_id)) {
        if(typeof(elements[elem]) != "object") return;
        
        if(!elements[elem].length && (elements[elem].value==item_id)) 
            elements[elem].checked = true;
        else 
            for(var i=0; i<elements[elem].length; i++) 
                if(elements[elem][i].value==item_id)
                    elements[elem][i].checked = true;
    }
}

function svote(survey_id) { 
  var survey = document.forms.survey_data.elements['vote'+survey_id];
  for(var i=0;i<survey.length;i++) 
      if(survey[i].checked) lredirect('surveys', 'results', 'svote['+survey_id+']='+survey[i].value+'&s_id='+survey_id);
}

/****************************************************************/

function display_menu() {
   clicked_item = event.srcElement;
   cont_menu.style.leftPos += 10;
   cont_menu.style.posLeft = event.clientX;
   cont_menu.style.posTop = document.body.scrollTop + event.clientY;
   cont_menu.style.display = "block";
   cont_menu.setCapture();
}

function switch_menu() {   
   el = event.srcElement;
   
   if(el.className == "cont_menu_item") el.className = "cont_menu_item_hl";
   
   else if(el.className == "cont_menu_item_hl") el.className = "cont_menu_item";
}

function click_menu() {
   cont_menu.releaseCapture();
   cont_menu.style.display = "none";
   process_menu_action(event.srcElement);
}

/*******************************************************************/

function MM_swapImgRestore() { //v3.0
  var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
}

function MM_preloadImages() { //v3.0
  var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
    var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
    if(a[i].indexOf("#")!=0) { d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}

function MM_findObj(n, d) { //v4.0
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
  if(!x && document.getElementById) x=document.getElementById(n); return x;
}

function MM_swapImage() { //v3.0
   var i,j=0,x,a=MM_swapImage.arguments; 
   document.MM_sr=new Array; 
   
   for(i=0;i<(a.length-2);i+=3)
    if((x=MM_findObj(a[i]))!=null) { 
        document.MM_sr[j++]=x; 
        if(!x.oSrc) x.oSrc=x.src; 
        x.src=a[i+2];
    }
}

function textCounter(field, countfield, maxlimit) {
    if(field.value.length > maxlimit) // if too long...this trims it!
    field.value = field.value.substring(0, maxlimit);
    // otherwise, update 'characters left' counter
    else 
    countfield.value = maxlimit - field.value.length;
}

/*** Right-click protection functions ***/

var isNS = (navigator.appName == "Netscape") ? 1 : 0;

function mischandler() { return false; }

function mousehandler(e) {
  var myevent = (isNS) ? e : event;
  var eventbutton = (isNS) ? myevent.which : myevent.button;
  if((eventbutton==2)||(eventbutton==3)) return false;
}

function disable_rclick(target) {
    //if(isNS) target.captureEvents(Event.MOUSEDOWN||Event.MOUSEUP);
    
    target.oncontextmenu = mischandler;
    target.onmousedown = mousehandler;
    target.onmouseup = mousehandler;
}

/*******************************************/

function open_details(url) { 
    var w_id = window.open(url,'','top=50,left=50,width=635,height=650,toolbar=0,directories=0,status=0,menubar=0,resizable=1,scrollbars=1');
    return w_id;
}

function view_photo_album(m_id) {
    var is_nude = (arguments.length >= 2) ? arguments[1] : false;

    var URL = gen_local_url('photos', is_nude ? 'view_nude' : 'view', 'm_id=') + m_id;
    win_id = window.open(URL,'','top=50,left=50,width=450,height=550,toolbar=0,directories=0,status=0,menubar=0,resizable=0,scrollbars=1')
}

/*******************************************/

var last_blink_id = '';

function titleBlink(pos, text, ending, id) {
        
    if(last_blink_id != id) return;
    
    var char1= String.fromCharCode(187);
    var char2= String.fromCharCode(171);
    var space = '-';;

    var msg1 = new Array(char1+space+space+space, space+char1+space+space, space+space+char1+space, space+space+space+char1, space+space+space+char2, space+space+char2+space, space+char2+space+space, char2+space+space+space);
    var msg2 = new Array(space+space+space+char2, space+space+char2+space, space+char2+space+space, char2+space+space+space, char1+space+space+space, space+char1+space+space, space+space+char1+space, space+space+space+char1);

    document.title = msg1[pos] + ending + msg2[pos] + text;

    pos = pos < 7 ? pos+1 : 0;

    timer = window.setTimeout("titleBlink("+pos+",'"+text+"','"+ending+"', "+id+")", 200);
}

/*******************************************/
function open_window() { 
    var page = (arguments.length >= 1) ? arguments[0] : '';
    var action = (arguments.length >= 2) ? arguments[1] : '';
    var get_params = (arguments.length >= 3) ? arguments[2] : '';
    var script_name = (arguments.length >= 4) ? arguments[3] : 'index.php';
    var width = (arguments.length >= 5) ? arguments[4] : 550;
    var height = (arguments.length >= 5) ? arguments[5] : 650;
    var is_window = (arguments.length >= 6) ? arguments[6] : false;
 
    var enc_id = get_cookie('encoding_id');
    var lang = '';
    if(enc_id == 1) lang = 'en';
    else if(enc_id == 15) lang = 'lv';
    else if(enc_id == 17) lang = 'ru';
    
    if(mod_rewrite)
        url = rewrite_base + (lang==''?'':lang+'/') + ((page=='')?"":page+"/"+((action=='')?"":action+"/")) + script_name + (get_params==''?"":"?"+get_params);
    else
        url  = rewrite_base + script_name + (get_params!='' || page!='' || action !='' ? "?" + get_params + ((page=='')?"":(get_params==''?"":"&")+"pg="+page) + ((action=='')?"":(get_params==''&&page==''?"":"&")+"act="+action) : "");

    var top = (window.screen.height - height) / 2;
    var left = (window.screen.width - width) / 2;

    var w_id = window.open(url,'','top='+top+',left='+left+',width='+width+',height='+height+',toolbar='+(is_window?"1":"0")+',directories='+(is_window?"1":"0")+',status='+(is_window?"1":"0")+',menubar='+(is_window?"1":"0")+',resizable=1,scrollbars=1,location=0');
}

function hide(element){
    if(element){
    element.style.visibility = 'hidden';
    element.style.display = 'none'; 
    }
}

function show(element){
    if(element){
    element.style.display = 'block';
    element.style.visibility = 'visible';
    }
}

function set_flags(is_checked, elem, flag) {
    if(is_checked) document.getElementById(elem).value |= flag; 
    else document.getElementById(elem).value &= ~flag;
}

/*******************************************/
function js_call(url) {
    var js_object = document.createElement('script'); 
    var cur_date = new Date();
    
    js_object.src = url + (url.indexOf('?')>0?'&':'?') +'tms='+cur_date.getHours()+''+cur_date.getMinutes()+''+cur_date.getSeconds()+''+Math.random();
    
    document.body.appendChild(js_object); 
}

function elem_status(elem_name, status) {
    var display_style = (arguments.length >= 3) ? arguments[2] : 'block';

    if(document.getElementById(elem_name)) {
        if(status) {
            document.getElementById(elem_name).style.display = display_style;
            document.getElementById(elem_name).style.visibility = 'visible';
        } else {
            document.getElementById(elem_name).style.display = 'none';
            document.getElementById(elem_name).style.visibility = 'hidden';
        }
    }
}

/*******************************************/

function get_form_values(form_id) {
    var str = '';
    var elem = document.getElementById(form_id).elements;
    for(var i=0; i<elem.length; i++) {
        if((elem[i].type != 'checkbox' && elem[i].type != 'radio') || (elem[i].checked == true)) {
            str += encodeURIComponent(elem[i].name) + "=";
            str += encodeURIComponent(elem[i].value) + (i == elem.length ? '' : "&");
        }
    }

    return str;
}

/**************************************/
function setHome(url) {
    if(document.all) {
        var js_object = document.createElement('a'); 
        js_object.style.behavior="url(#default#homepage)"; 
        js_object.setHomePage(url); 
    }
}

/**************************************/

function open_chat(url) {
    return window.open(url,'','top=50,left=50,width=800,height=600,toolbar=0,directories=0,status=0,menubar=0,resizable=1,scrollbars=1');
}

/**************************************/
function findPosX(obj) { var curleft = 0; if(obj.offsetParent) { while(obj.offsetParent) { curleft += obj.offsetLeft; obj = obj.offsetParent; } } else if(obj.x) curleft += obj.x; return curleft; }
function findPosY(obj) { var curtop = 0; if(obj.offsetParent) { while(obj.offsetParent) { curtop += obj.offsetTop; obj = obj.offsetParent; } } else if(obj.y) curtop += obj.y; return curtop; } 
/**************************************/

function in_array(what, arr) {
    var ind;
    for(ind in arr) if(what == arr[ind]) return ind;
    return -1;
}

/***************************************/

function insertAtCursor(field_name, field_val) {  
  
  var myField = document.getElementById(field_name);

  // for MSIE
  if(document.selection) { 
    myField.focus();
    sel = document.selection.createRange();  
    sel.text = field_val;  
  
  // for normal browsers
  } else if (myField.selectionStart || myField.selectionStart == '0') {  
    var startPos = myField.selectionStart;  
    var endPos = myField.selectionEnd;  
    myField.value = myField.value.substring(0, startPos) + field_val + myField.value.substring(endPos, myField.value.length);  
  
  // for others
  } else {  
    myField.value += field_val;  
  }  

  myField.focus();
}

/*********************************************/

function load_css(url) {
    var objects = document.getElementsByTagName('link');
    
    for(var i=0; i<objects.length; i++) 
        if(objects[i].getAttribute('href') == url) return;

    var fileref = document.createElement('link');
    fileref.setAttribute('rel', 'stylesheet');
    fileref.setAttribute('type', 'text/css');
    fileref.setAttribute('href', url);
    
    document.getElementsByTagName('head')[0].appendChild(fileref);
}

/*********************************************/

function open_album(m_id) { 
    var URL = gen_local_url('photos', 'view', 'm_id=') + m_id;
    win_id = window.open(URL,'','top=50,left=50,width=450,height=550,toolbar=0,directories=0,status=0,menubar=0,resizable=0,scrollbars=1');
    return false;
}

function get_cookie(sName) {
  
    var aCookie = document.cookie.split("; ");
    for(var i=0; i < aCookie.length; i++) {
        var aCrumb = aCookie[i].split("=");
        if(sName == aCrumb[0]) 
            return unescape(aCrumb[1]);
    }

    return null;
}
