// $Id$
// --------- News images functions -------------

var ImagesSmall = new Array;
var ImagesBig = new Array;
var ImagesId = new Array;
var Alts = new Array;
var Titles = new Array;
var CurImage = new Array;
var img = new Array;
var IconOn = new Image;
var IconOff = new Image;
var site_title = "yuga";
var defaultFormValues = new Object;
var formNames = new Array('login', 'password', 'query');
var formsProcessed = false;

IconOn.src = '/img/media/icon_image_on.gif';
IconOff.src = '/img/media/icon_image.gif';

function Preload(){
	for (var key = 0; key < ImagesSmall.length; key++) {
		if (!ImagesSmall[key]) continue;

		if (document.images['icon_' + key + '_0']) document.images['icon_' + key + '_0'].src = IconOn.src;

		img[key] = new Array();

		for (j = 0; j < ImagesSmall[key].length; j++) {
			img[key][j] = new Image;
			img[key][j].src = ImagesSmall[key][j];
		}
	}
}

function ShowImage(parent, index, domain, local_templates) {
	ShowImage2(parent, index, ImagesId[index][CurImage[index]]+'', domain, local_templates);
}

function ShowImage2(parent, id, mediaid, domain, local_templates) {
	if (mediaid) mediaid = '&mediaid=' + mediaid;
	if (domain) {
		if (domain == document.location.hostname) {
			domain = '';
		} else {
			domain  = '&domain=' + domain;
		}
	}
	if (local_templates) local_templates = '&local_templates=' + local_templates
	else local_templates = '';

	var extendid = '';
	var arr = id.toString().split(':');
	id = arr[0];
	if (arr[1]) {
		extendid = '&extendid=' + arr[1];
	}

	var link = '/cgi-bin/kernel.cgi?module=media&act=show&parent=' + parent + '&id=' + id + extendid + mediaid + domain + local_templates;
	var hnd = window.open(link, '', 'resizable=yes,menubar=no,status=no,scrollbars=no,statusbar=no,toolbar=no,width=500,height=550');
	hnd.id = id;
}

function ShowImage3(id){
	var current = CurImage[id] || 0;
	var src = ImagesBig[id][current];
	if(!Alts[id]) Alts[id] = new Array();
	if(!ImagesBig[id] || !src) return true;
	var title = ShowImage3.arguments[1] || Alts[id][current] || '';
	var alt   = ShowImage3.arguments[2] || title;
	while(title.indexOf('"') >= 0) {
		title = title.replace('"', '&quot;');
	}
	var multiple = (ImagesBig[id].length > 1);
	var first = (current == 0);
	var last = (current == ImagesBig[id].length-1);
	var hnd = window.open('', 'photo', 'resizable=yes,menubar=no,status=no,scrollbars=yes,statusbar=no,toolbar=no,width=500,height=550');
	hnd.document.write('' +
		'<html>\n<head>\n<title>' +
		(title ? title+' - ' : '')+
		top.site_title+
		'</title>\n<link rel="stylesheet" type="text/css" media="screen" href="/css/screen.css" />\n</head>\n<body class="media_show">\n'+
		'<table align="center"><td class="l1"><table class="l2"><td class="l3">' +
	'');

	var head = hnd.document.getElementsByTagName("HEAD")[0];
	if (head) {
		var script  = hnd.document.createElement("SCRIPT");
		script.type = "text/javascript";
		script.src  = 'http://www.yuga.ru/js/script.js';
		script.charset = 'windows-1251';
		head.appendChild(script);
	} else {
		window.alert('Script append failed!');
	}

	hnd.imgSwap = window.imgSwap;
	hnd.document.resize = function(){
		var obj = hnd.document.getElementById('media_photo');
		if(!obj) alert('resize failed');
		hnd.resizeTo (obj.width+90, hnd.document.body.scrollHeight + 60);
		if(obj = hnd.document.getElementById('status')) obj.innerHTML = '';
	}

	hnd.document.write(''+
		'<div class="l4"><img id="media_photo" onload="try { resize() } catch (e) {}" src="'+src+'" alt="'+(alt ? alt : '') + '"/></div>' +
		(title ? '<table class="caption"><td class="inner" id="caption">' + title + '</td></table>\n' : '') +
		(multiple?'<div class="links"><span onclick="imgSwap(0, ' + id + ')" title="Previous" id="prevlink"'+(first?' style="visibility: hidden"':'')+'><img src="/i/0.gif"/></span><span onclick="imgSwap(1, ' + id + ')" title="Next" id="nextlink"'+(last?' style="visibility: hidden"':'')+'><img src="/i/0.gif"/></span></div>\n':'')+
		'</td></table></td></table>'+
		'\n</body>\n</html>'+
	'');

	hnd.id = id;
	hnd.title = title;
	hnd.document.close();
	hnd.focus();
	window.POPUP_HND = hnd;
	return false;
}

function OpenWindow(url, width, height){
	window.open(url,'','resizable=yes,menubar=no,status=no,scrollbars=no,statusbar=no,toolbar=no,width='+width+',height='+height);
	return false;
}

function Splash(i, j) {
	var obj = document.images['icon_' + i + '_' + CurImage[i]];
	if (obj) obj.src = IconOff.src;

	if (document.images['item'+i]) {
		if(img[i]) {
			document.images['item' + i].src = img[i][j].src
			document.images['item' + i].width = img[i][j].width;
			document.images['item' + i].height = img[i][j].height;
		} else if (ImagesSmall[i] && ImagesSmall[i][j]) {
			document.images['item' + i].src = ImagesSmall[i][j];
		}

		if (Alts[i] && Alts[i][j]) document.images['item' + i].alt = Alts[i][j];
	}

	CurImage[i] = j;

	obj = document.images['icon_' + i + '_' + j];
	if (obj) obj.src = IconOn.src
}

function flip(blockid){
	var obj = document.getElementsByTagName('UL');
	for(var i in obj){
		if(!obj[i].id || obj[i].id.indexOf('block') == -1) continue;
		obj[i].style.display = obj[i].id == blockid ? 'block':'none';
	}
}

function resize(){
	var obj = document.getElementById('media_photo') || document.body;
	window.resizeTo (obj.width+90, window.document.body.scrollHeight + 60);
	if(obj = document.getElementById('status')) obj.innerHTML = '';
}

function imgSwap(nextImage){
	var obj, imgArray, pos, next, prev, last_img, first_img, cur_title;
	var id = window.id || window.imgSwap.arguments[1];
	var opn = window.opener || window.document.parentWindow;
	var doc = (opn.POPUP_HND || window).document;
	if (opn && opn.ImagesBig && (imgArray = opn.ImagesBig[id]) && (obj = doc.getElementById('media_photo'))){
		var docbody = doc.body || doc.documentElement;
		if (!obj.onload) obj.onload = resize;
		if (docbody.onload) docbody.onload = null;

		pos = arrayPos(imgArray, obj.src);
		if (pos.curr == -1) {
			pos = arrayPos(imgArray, unescape(obj.src.replace(new RegExp('^'+doc.location.protocol+'//'+doc.location.hostname, 'i'), '')));
		}

		if (pos.curr == -1) return true;
		//next = doc.getElementById('nextlink');
		//prev = doc.getElementById('prevlink');
		if (nextImage) {
			first_img = pos.begin;
			last_img  = pos.end;
			next = doc.getElementById('nextlink');
			prev = doc.getElementById('prevlink');
			pos = pos.next;
		}
		else{
			first_img = pos.end;
			last_img  = pos.begin;
			next = doc.getElementById('prevlink');
			prev = doc.getElementById('nextlink');
			pos = pos.prev;
		}
		if (opn.Alts[id] && opn.Alts[id][pos]) cur_title = opn.Alts[id][pos];
		else if (doc.getElementById('caption')) cur_title = doc.getElementById('caption').innerHTML;
		else cur_title = window.title || '';

		if ((pos == last_img) && next) next.style.visibility = 'hidden';
		if (prev) prev.style.visibility = 'visible';
		obj.src = imgArray[pos] ? imgArray[pos] : imgArray[first_img];
		obj.alt = cur_title;
		obj.title = cur_title;
		if (!obj.complete && (obj = doc.getElementById('status'))) obj.innerHTML = 'Загрузка...';
		if (obj = doc.getElementById('caption')) obj.innerHTML = cur_title;
		return false;
	}
	return true;
}

function arrayPos(ary, str){
	var found = false;
	var first = true;
	var res = {
		end   : ary.length - 1,
		begin :  0,
		prev  : -1,
		curr  : -1,
		next  : -1
	};

	for (var i in ary) {
		if (first) {
			res.begin = parseInt(i);
			first = false;
		}

		if (found) {
			res.next = parseInt(i);
			break;
		}

		if (ary[i] == str) {
			res.curr = parseInt(i);
			found = true;
		}

		if (!found) {
			res.prev = parseInt(i);
		}

	}
	return res;
}

if (window.Prototype) {
	Event.observe(window, 'load', function () { Preload() });
} else {
	window.onload = Preload;
}

function check_children(name, state) {
  var elements = document.getElementsByTagName('input');

  if (/where_domain_\d+/.test(name)) {
    var count = 0;

    for (i = 0; i < elements.length; i++) {
      if (elements[i].className.match(name)) {
        elements[i].checked = state;
        document.getElementById('title_' + elements[i].id).style.fontWeight = state ? 'bold' : 'normal';
        count++;
      }
    }

    check_parent('where_portal', 'parent_where_portal', count);
  }
  else {
    for (i = 0; i < elements.length; i++) {
      if (elements[i].className.match(name)) {
        elements[i].checked = state;
        document.getElementById('title_' + elements[i].id).style.fontWeight = state ? 'bold' : 'normal';
      }
    }
  }
}

function check_parent(name, parent, count) {
  var inputs = document.getElementsByTagName('input');
  var parent = document.getElementById(parent);
  var length = inputs.length;
  var elements = 0;
  var checked = 0;

  if (/where_portal/.test(name)) {
    for (i = 0; i < inputs.length; i++) {
      if (inputs[i].className.match(name)) {
        elements++;

        if (inputs[i].checked) {
          checked++;
          document.getElementById('title_' + inputs[i].id).style.fontWeight = 'bold';
        }
        else {
          document.getElementById('title_' + inputs[i].id).style.fontWeight = 'normal';
        }
      }
    }

    if (checked == elements - 1 && !parent.checked) {
      parent.checked = true;
      document.getElementById('title_' + parent.id).style.fontWeight = 'bold';
    }
    else if (checked == elements - count && parent.checked) {
      parent.checked = false;
      document.getElementById('title_' + parent.id).style.fontWeight = 'normal';
    }
  }
  else if (/where_domain_\d+/.test(name)) {
    for (i = 0; i < inputs.length; i++) {
      if (inputs[i].className.match(name)) {
        elements++;

        if (inputs[i].checked) {
          checked++;
          document.getElementById('title_' + inputs[i].id).style.fontWeight = 'bold';
        }
        else {
          document.getElementById('title_' + inputs[i].id).style.fontWeight = 'normal';
        }
      }
    }

    if (checked == elements - 1 && !parent.checked) {
      parent.checked = true;
      document.getElementById('title_' + parent.id).style.fontWeight = 'bold';
    }
    else if (checked == elements - 1 && parent.checked) {
      var portal = document.getElementById('parent_where_portal');
      parent.checked = false;
      portal.checked = false;
      document.getElementById('title_' + parent.id).style.fontWeight = 'normal';
    }

    check_parent('where_portal', 'parent_where_portal', elements);
  }
  else {
    for (i = 0; i < length; i++) {
      if (inputs[i].className == name) {
        elements++;

        if (inputs[i].checked) {
          checked++;
          document.getElementById('title_' + inputs[i].id).style.fontWeight = 'bold';
        }
        else {
          document.getElementById('title_' + inputs[i].id).style.fontWeight = 'normal';
        }
      }
    }

    if (checked == elements - 1 && !parent.checked) {
      parent.checked = true;
      document.getElementById('title_' + parent.id).style.fontWeight = 'bold';
    }
    else if (checked == elements - 1 && parent.checked) {
      parent.checked = false;
      document.getElementById('title_' + parent.id).style.fontWeight = 'normal';
    }
  }
}

function CheckIt() {
	for (var i = 1; i < 5; i++) {
		document.getElementById('titlerb' + i).style.fontWeight = document.getElementById('rb' + i).checked ? 'bold' : 'normal';
	}
}