var isIE  = (navigator.appVersion.indexOf("MSIE") != -1) ? true : false;
var isWin = (navigator.appVersion.toLowerCase().indexOf("win") != -1) ? true : false;
var isOpera = (navigator.userAgent.indexOf("Opera") != -1) ? true : false;
var isNs = (navigator.appName.indexOf("Netscape") != -1);

function getE(id){
	return document.getElementById(id);
}

function defined(x){
	return typeof(x) != 'undefined' && x != null;
}

function addListener(element, event, func){
	if(element.attachEvent)
		element.attachEvent('on' + event, function(){ func(window.event) });
	else if(element.addEventListener)
		element.addEventListener(event, func, false);
}

function trim(str) {
    var newstr = str.replace(/^\s*(.+?)\s*$/, "$1");
    if (newstr == " ") {
        return "";
    }
    return newstr;
}

function drop_spaces(str) {
    var newstr = trim(str);
    return newstr.replace(/(\s)+/g, ""); 
}

function check_email(email) {
    var template = /^[A-Za-z0-9](([_\.\-]?[a-zA-Z0-9]+)*)@([A-Za-z0-9]+)(([\.\-]?[a-zA-Z0-9]+)*)\.([A-Za-z])+$/;
    email = drop_spaces(email);
    if (template.test(email)) {
        return true;
    }
    return false; 
}

function ShowWin(url,x,y,name,isscrollbars) {
	cx=screen.width / 2 - (x / 2);
	cy=(screen.height/2-(y/2));
    
    isscrollbars=(isscrollbars=="no")?"no":"yes";
	window.open(url,name,"toolbar=no,status=no,directories=no,menubar=no,resizable=yes,width="+x+",height="+y+",scrollbars="+isscrollbars+",top="+cy+",left="+cx);
}


function MOver(MySrc,MyColor) { MySrc.style.cursor="auto"; MySrc.bgColor=MyColor; }
function MOut (MySrc,MyColor) { MySrc.style.cursor="auto"; MySrc.bgColor=MyColor; }

function room_children(ch1,ch2,room) {														
	var ch1 = document.getElementById(ch1);
	var ch2 = document.getElementById(ch2);
	var room = document.getElementById(room);
	switch (rs[room.options[room.selectedIndex].value]) {
		case '2': ch1.disabled=false; ch2.disabled=false; break;
		case '1': ch1.disabled=false; ch2.disabled=true; ch2.value=""; break;    
		default: ch1.disabled=true; ch2.disabled=true; ch1.value=ch2.value=""; break;        
	}
}


function Selecter(Form, EName, S) {
    var f=Form;
    for ( i=0; i<f.length; i++ ) {
        if (f.elements[i].name==EName) {
            f.elements[i].checked=(S==1)?true:false;
        }
   }        
}


function rawurlencode(str) {
	var url = new String(str);
	url = url.replace(/([^a-z0-9_\-\.])/gi, function (str, p1, offset, s) {	var hex = new Array("0","1","2","3","4","5","6","7","8","9","A","B","C","D","E","F"); val = p1.charCodeAt(0); s = ""; while (val>=16) { s += hex[val%16]; val = Math.floor(val/16); } s += hex[val]; N = s.length; for (i=0,t="";i<N;i++) t += s.substring(N-i-1,N-i); return "%"+t; });
	return url;
}

function rawurldecode(str) {
	var url = new String(str);
	url = url.replace(/%([0-9ABCDEF]{2}|[0-9ABCDEF]{4})/g, function (str, p1, offset, s) { return String.fromCharCode(parseInt("0x"+p1,16)); });
	return url;
}



function ShowDivWindow(Name, Text, Action) {
    leerId=Name;
    LoadingHTML=Text;

	cx=(document.body.clientWidth/2)-(200/2);
	cy=(document.body.clientHeight/2)-(100/2);


/*    
	cx=screen.width/2;
	cy=screen.height/2;
*/
    
    if ((navigator.userAgent.indexOf("MSIE 5.5")==-1) && (navigator.userAgent.indexOf("MSIE 6")==-1)) {
//      cx += 90;
      cy-= 117;
    }

   
    if (document.all) {
        var leerElem = document.all[leerId];
        leerElem.innerHTML = LoadingHTML;
        leerElem.style.left = cx;
        leerElem.style.top = cy;
        leerElem.style.visibility = ((Action=="show")?"visible":"hidden");
    }
    else if (document.getElementById) {
        var leerElem = document.getElementById(leerId);
        leerElem.innerHTML = LoadingHTML;
        leerElem.style.left = cx;
        leerElem.style.top = cy;
        leerElem.style.visibility = ((Action=="show")?"visible":"hidden");
    }
    else if (document.layers) {
        document.layers[leerId].left = cx;
        document.layers[leerId].top = cy;
        document.layers[leerId].document.open();
        document.layers[leerId].document.write(LoadingHTML);
        document.layers[leerId].document.close();
        document.layers[leerId].visibility = ((Action=="show")?"show":"hide");
    }
}





function add_tr(table_name, input_name, name){
	var table = document.getElementById(table_name);
	var rows = table.rows;
	var count = rows.length;
	var label = count+1;
	
	var tr = table.insertRow(count); 
	var td1 = tr.insertCell(0);
	var td2 = tr.insertCell(1);
	
	var text = document.createElement('input');
	text.type = 'text';
	text.name = input_name;
	text.style.width = '100%';
	
	td1.innerHTML = name+' '+(label+1)+':'; 
	td1.noWrap = true;
	td1.width = "1%";
	td1.valign = "top";
	
	td2.appendChild(text);
}

function add_tr1(table_name,name){
	var label = 0;
	$('input.photoFile').each(function(){ label = label + 1; });
	$('#'+table_name).append('<tr><td nowrap width="13%">'+name+' '+(label+1)+':</td><td width="77%" nowrap style="padding-left : 7px;"><input class="photoFile" type="File" name="photo[]" style="width: 30%;"><input name="photo_note[]" value="" maxlength="255" style="width: 70%;"></td></tr><tr><td height="6"></td></tr>');
	var count_photo = document.getElementById('count_photo');
	count_photo.value++;
}


function del_tr1(table_name){
	var table = document.getElementById(table_name);
	var rows = table.rows;
	var count = rows.length;
	if (count>12)
	{
		table.deleteRow(count-1);
		table.deleteRow(count-2);

		var count_photo = document.getElementById('count_photo');
		count_photo.value--;
	}
}


function add_tr2(table_name,name){
	var table = document.getElementById(table_name);
	var rows = table.rows;
	var count = rows.length;
	var label = 0;
	var re3 = new RegExp("^video[0-9]*$","i");

	var inputs = document.getElementsByTagName('input');
	for ( var k in inputs ) {
		if (inputs[k].type =='file')
		{
			if(re3.test(inputs[k].name))
			{
				label = label + 1;
			}
		}
	}
	
	//label = label - 2;

	var tr = table.insertRow(count); 
	var td1 = tr.insertCell(0);
	var td2 = tr.insertCell(1);
	var td3 = tr.insertCell(2);
	
	td1.innerHTML = name+' '+(label+1)+':'; 
	td1.noWrap = true;
	//td1.width = "13%";
	
	//td2.width = "77%";
	//td2.style.paddingLeft = '7';
	//td2.noWrap = true;
	td2.innerHTML = '<input type="file" name="video'+(label)+'">'; 
	td3.innerHTML = '<input type="text" maxlength="256" name="video_note_'+(label)+'" style="width: 100%;">'; 
	
	var tr1 = table.insertRow(count+1); 
	var td11 = tr1.insertCell(0);
	td11.height = '6';
	td11.colspan = '3';
	td11.innerHTML = '&nbsp;';

	var count_photo = document.getElementById('count_video');
	count_photo.value++;

}


function del_tr2(table_name){
	var table = document.getElementById(table_name);
	var rows = table.rows;
	var count = rows.length;
	if (count>8)
	{
		table.deleteRow(count-1);
		table.deleteRow(count-2);

		var count_photo = document.getElementById('count_video');
		count_photo.value--;
	}
}

function del_tr(table_name){
	var table = document.getElementById(table_name);
	var rows = table.rows;
	var count = rows.length;
	if (count>0){ table.deleteRow(count-1); }
}

	function change_en(ru,en,a_ru,a_en) {
		var info_en = document.getElementById(en);
		var info_ru = document.getElementById(ru);
		info_ru.style.display = 'none';
		info_en.style.display = 'block';

		var a_en = document.getElementById(a_en);
		var a_ru = document.getElementById(a_ru);
		a_en.style.color = '#000000';
		a_ru.style.color = '#390';

		a_en.style.fontWeight = 'bold';
		a_ru.style.fontWeight = 'normal';
	}
	
	function change_ru(ru,en,a_ru,a_en) {
		var info_en = document.getElementById(en);
		var info_ru = document.getElementById(ru);
		info_en.style.display = 'none';
		info_ru.style.display = 'block';

		var a_en = document.getElementById(a_en);
		var a_ru = document.getElementById(a_ru);
		a_ru.style.color = '#000000';
		a_en.style.color = '#390';

		a_ru.style.fontWeight = 'bold';
		a_en.style.fontWeight = 'normal';
	}


	function lang_ru() {
		for ( var k in lang ) {
			var label = document.getElementById(lang[k][0]);
			label.innerHTML = lang[k][1];
		}
	}
	
	function lang_en() {
		for ( var k in lang ) {
			var label = document.getElementById(lang[k][0]);
			label.innerHTML = lang[k][2];
		}
	}


/*
** Параметры:
** str - путь
** addarray - переменные, которые надо добавить в путь (array('name1','value1','name2','value2',...))
** removearray - перменные, которые необходимо убрать из пути (array('name1','name2',...))
*/
function mod_get_qs(str,addarray,removearray) {
	farr = str.split('?');

	var vars = new Array();
	var varval = new Array();

	if(defined(farr[1])) {
		arr = farr[1].split('&');

		for(i=0;i<arr.length;i++) {
			variable = arr[i].split('=');
			vars[i] = variable[0];
			varval[i] = variable[1];
		}
		if(defined(removearray)) {
			if(removearray.length>0) {
				for(i=0;i<vars.length;i++) {
					for(j=0;j<removearray.length;j++) {
						if(vars[i]==removearray[j]) {
							vars[i] = false;
							varval[i] = false;
						}
					}
				}
			}
		}
	}

	if(defined(addarray)) {
		if(addarray.length>0) {
			for(j=0;j<addarray.length;j++) {
				find = false;
				for(i=0;i<vars.length;i++) {
					if(vars[i]==addarray[j]) {
						varval[i] = addarray[j+1];
						find = true;
					}
				}
				if(!find) {
					vars[vars.length] = addarray[j];
					varval[varval.length] = addarray[j+1];
				}
				j++;
			}
		}
	}

	qs = '';
	for(i=0;i<vars.length;i++) {
		if(vars[i]!=false)
			qs = qs+vars[i]+'='+varval[i]+'&';
	}
	return farr[0]+'?'+qs;
}


function get_cb_values(form_name,parent,name) {
	var values = '';
	values = get_el_values(form_name,parent,name,'checkbox');	
	return values;
}


function get_el_values(fname,parent,elname,eltype) {
	if(!parent) {
		var form = getE(fname);
	} else {
		var form = window.parent.document.getElementById(fname);
	}
	var values = '';

	if(defined(form)) {
		var element = form.elements;
		var arrel = Array();
		
		if(defined(element)) {
			for (i=0; i<element.length; i++){
				if (element[i].type==eltype && element[i].name==elname) {
					arrel[arrel.length] = element[i];
				}
			}
			if (arrel.length>0) {				
				for (i=0;i<arrel.length;i++){
					if(eltype=='checkbox') {
						if (arrel[i].checked) {
							values += arrel[i].value+'_';
						}
					} else {
						if (arrel[i].value) {
							values += arrel[i].value+'_';
						}	
					}
				}
				values = values.substr(0,values.length-1);
			}
		}
	}

	return values;
}

/*
** Параметры:
** str - путь
** addarray - переменные, которые надо добавить в путь (array('name1','value1','name2','value2',...))
** removearray - перменные, которые необходимо убрать из пути (array('name1','name2',...))
*/
function my_get_qs(str,addarray,removearray) {
	farr = str.split('?');

	var vars = new Array();
	var varval = new Array();

	if(defined(farr[1])) {
		arr = farr[1].split('&');

		for(i=0;i<arr.length;i++) {
			variable = arr[i].split('=');
			vars[i] = variable[0];
			varval[i] = variable[1];
		}
		if(defined(removearray)) {
			if(removearray.length>0) {
				for(i=0;i<vars.length;i++) {
					for(j=0;j<removearray.length;j++) {
						if(vars[i]==removearray[j]) {
							vars[i] = false;
							varval[i] = false;
						}
					}
				}
			}
		}
	}

	if(defined(addarray)) {
		if(addarray.length>0) {
			for(j=0;j<addarray.length;j++) {
				find = false;
				for(i=0;i<vars.length;i++) {
					if(vars[i]==addarray[j]) {
						varval[i] = addarray[j+1];
						find = true;
					}
				}
				if(!find) {
					vars[vars.length] = addarray[j];
					varval[varval.length] = addarray[j+1];
				}
				j++;
			}
		}
	}

	qs = '';
	for(i=0;i<vars.length;i++) {
		if(vars[i]!=false)
			qs = qs+vars[i]+'='+varval[i]+'&';
	}
	
	return farr[0]+'?'+qs;
}

function qs2Hidden(qs) {
	farr = qs.split('?');
	var vars = new Array();
	var varval = new Array();
	if(defined(farr[1])) {
		arr = farr[1].split('&');
		for(i=0;i<arr.length;i++) {
			variable = arr[i].split('=');
			vars[i] = variable[0];
			varval[i] = variable[1];
		}
	}
	for(i=0;i<vars.length;i++) {
		if(vars[i]!=false)
			document.write('<input type="Hidden" id="id'+vars[i]+'" name="'+vars[i]+'" value="'+varval[i]+'">')
	}
}


function getAbsolutePos(el) { 
	var SL = 0, ST = 0; 
	var is_div = /^div$/i.test(el.tagName); 
	if (is_div && el.scrollLeft) SL = el.scrollLeft; 
	if (is_div && el.scrollTop) ST = el.scrollTop; 
	var r = { x: el.offsetLeft - SL, y: el.offsetTop - ST }; 
	if (el.offsetParent) { 
		var tmp = this.getAbsolutePos(el.offsetParent); 
		r.x += tmp.x; 
		r.y += tmp.y; 
	} 
	return r; 
}

function showDivByEl(div,el,w,h) {
	pos = getAbsolutePos(getE(el));
	getE(div).style.top = parseInt(pos.y+h);
	getE(div).style.left = parseInt(pos.x+w);
	getE(div).style.display='block';
	return false;
}