// JavaScript Document
var isIE=document.all?true:false;

window.onload = init_page;

ini_run = '';

function init_page(){
	eval(ini_run);
}

function element(id){
	return document.getElementById(id)
}

function is_email(email){
    if (/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,4})+$/.test(email)){
        return true
    }else{
        return false
    }
}

// PNG FIXES

var realSrc='';
var imgs = document.getElementsByTagName('img');
var blankSrc = 'images/pixel.gif';

function fixPNGImages()
{
	var supported = /MSIE/.test(navigator.userAgent) && !/opera/.test(navigator.userAgent) && navigator.platform == "Win32";
	if ( supported )
	{
		for (var i = 0; i < imgs.length; i++)
		{
			realSrc = imgs[i].src;
			if ( /\.png$/.test( realSrc.toLowerCase()) ) fixImage(imgs[i]);
		}
	}
}

function fixImage(element) {
   // get src
	var src = element.src;   
	var height = element.height;
	var width = element.width;

	// set blank image
	element.src = blankSrc;
	// moi modifikatsii
	element.style.width = width;
	element.style.height = height;
	// set filter
	element.style.filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader(src='" +
								 realSrc + "',sizingMethod='scale')";
}

ini_run += "fixPNGImages();";
// END OF PNG FIXES

function getOffsetTop (elm) {

	var mOffsetTop = elm.offsetTop;

	var mOffsetParent = elm.offsetParent;

	while (mOffsetParent) {

		mOffsetTop += mOffsetParent.offsetTop;

		mOffsetParent = mOffsetParent.offsetParent;}

	return mOffsetTop;

}



function getOffsetLeft (elm) {

	var mOffsetLeft = elm.offsetLeft;

	var mOffsetParent = elm.offsetParent;

	while (mOffsetParent) {

		mOffsetLeft += mOffsetParent.offsetLeft;

		mOffsetParent = mOffsetParent.offsetParent;}

	return mOffsetLeft;

}

// Fade an dOpacity

function SetOpacity(obj,val){
	if (isIE && typeof obj.style.filter == 'string') {
		obj.style.filter = 'alpha(opacity='+val+')'
		if (!obj.currentStyle || !obj.currentStyle.hasLayout) {
			obj.style.zoom = 1; // when no layout or cant tell
		}
	}else{
		obj.style.opacity = val/100;
		obj.style['-moz-opacity'] = val/100;
		obj.style['-khtml-opacity'] = val/100;
	}
	
}

function str2arr(str,seperator){
	arr = new Array()
	items = str.split("seperator")
	for(r=0;r<items.length;r++){
		temp = items[r].split("=")
		arr[temp[0]] = temp[1]
	}
	
	return arr
}

function GetOpacity(obj){
	if(isIE && typeof obj.style.filter == 'string'){
		filter = obj.style.filter
		filter = filter.replace("alpha(","")
		filter = filter.replace(")","")
		
		filters = str2arr(filter,",")
		
		opacity = filters['opacity']
		opacity = (opacity == undefined)? 100 : opacity
	}else{
		opacity = 100
	}
	
	return parseFloat(opacity)
}

function positive(num){
	return (num >= 0)? num : num * -1;
}

var fade_working = new Array()

function fade(element_id){
	var args = fade.arguments;
	if(args.length > 2){
		from = (isIE)? GetOpacity(eval(element_id)) : args[1]
		to = args[2]
		fade_working["'"+element_id+"'"] = new Array(from,to)
	}else{
		from = fade_working["'"+element_id+"'"][0]
		to = fade_working["'"+element_id+"'"][1]
	}
	//var round_time = (args > 3)? args[3] : 1; // Seconds
	step = 4
	round_time = 20
	
	var obj = document.getElementById(element_id)
	SetOpacity(obj,from)
	
	if(from != to){
		dif = positive(from - to)
		var incr = 1
		if(from > to){
			from -= (dif < step)? incr : step
		}else if(from < to){
			from += (dif < step)? incr : step
		}
		
		fade_working["'"+element_id+"'"][0] = from
		//return setTimeout('fade(\''+element_id+'\','+from+','+to+')',50)
		return setTimeout('fade(\''+element_id+'\')',round_time)
	}else{
		return from
	}
}

function open_window(url,id,width,height){ // Additional args: 5) left, 6) top.
	var args = open_window.arguments
	
	var left = (args.length > 4)? args[4] : (screen.availWidth/2)-(width/2)
	var top = (args.length > 5)? args[5] : (screen.availHeight/2)-(width/2)
	setup = 'toolbar=no,location=no,directories=no,status=no,left='+left+',top='+top+',menubar=no,width='+width+',height='+height
	setup += 'scrollbars=no,resizable=no'
	
	window.open(url,id,setup)
}

var expended_item = new Array();

function expend_collapse(me, expended, el){
	if(expended_item[0]){
		expended_item[0].className = 'big_collapsed'
		expended_item[1].className = 'hidden'
	}
	
	if(expended){
		me.className = 'big_collapsed'
		el.className = 'hidden'
	}else{
		me.className = 'big_expended'
		el.className = 'visible'
		
		expended_item[0] = me;
		expended_item[1] = el;
	}
}

function file_from_path(path){
	var start = path.lastIndexOf("\\");
	
	if(start >= 0){
		path = path.substring(start + 1,path.length)
	}
	
	return path
}

function file_extension(path){
	var start = path.lastIndexOf(".");
	return path.substring(start + 1,path.length).toLowerCase()
}

function check_extension(path){
	var ext = file_extension(path)
	
	if(ext != 'jpg' && ext != 'jpeg' && ext != 'bmp' && ext != 'png' && ext != 'gif'){
		alert("This file type is invalid.\nValid picture types are: JPG, JPEG, GIF, PNG, and BMP.\nFile type you selected is: " + ext.toUpperCase())
		return false;
	}
	
	return true;
}

function days_in_month(month,year){
    var dd = new Date(year, month, 0);
    return dd.getDate();
}

// SELECT ELEMENT

// Adds option to <select> element
// Arguments: Select element, String Option Name, Option Value, Bool (should this option be selected or not?)
function addElement(objSelCtrl, strText, strValue, selected){
	var args = addElement.arguments;
	var objOptions = objSelCtrl.options;
	var intOptionLength = (objSelCtrl.options.length <= 0)? 0 : objSelCtrl.options.length //IE for Mac 4.5 sets length to -1 if list is empty
	
	objOptions[intOptionLength] = new Option(strText, strValue);

	var argv = addElement.arguments;
	var argc = addElement.arguments.length;
	if(argc > 3 && argv[3] == true){
		objOptions[intOptionLength].selected = argv[3]
		if(args.length > 4){
			objOptions[intOptionLength].style.color = args[4]
		}
		if(args.length > 5){
			objOptions[intOptionLength].style.background = args[5]
		}
	}
}

// Removes all options from <select> element
// Arguments: Select element
function ClearElements(what){var walength = what.options;for(i in walength){what.options[i] = null}}
