var video_click = function(Player_ID, Click_From_Second, Click_URL,
		Click_Target) {
	time = $f(Player_ID).getTime();
	info("Clicked " + time);
	if (time > Click_From_Second) {
		$f(Player_ID).unload();
		top.location.href = Click_URL;
		return true;
	} else {
		return false;
	}
};

var info = function(msg) {
	window.status = msg;
	// document.getElementById("status").innerHTML = msg;
};

// var open = function(id) {
// show_hide_Element('overlay_', 1, 1);
// show_hide_Element('overlay_', 0, 0);
// show_hide_Element('show_', 1, 0);
// video_open();
// };
//
// var close = function(id) {
// show_hide_Element('overlay_', 2, 1);
// show_hide_Element('overlay_', 2, 0);
// show_hide_Element('show_', 0, 0);
// video_close();
// };

var video_close = function() {
	$f().unload();
};

var video_open = function() {
	$f().play();
};

var fireEvent = function(obj, evt) {
	var fireOnThis = obj;
	if (document.createEvent) {
		var evObj = document.createEvent('MouseEvents');
		evObj.initEvent(evt, true, false);
		fireOnThis.dispatchEvent(evObj);
	} else if (document.createEventObject) {
		fireOnThis.fireEvent('on' + evt);
	}
};

var addEvent = function(elem, type, eventHandle) {
	if (elem == null || elem == undefined)
		return;
	if (elem.addEventListener) {
		elem.addEventListener(type, eventHandle, false);
	} else if (elem.attachEvent) {
		elem.attachEvent("on" + type, eventHandle);
	}
};

var doResizeCode = function() {
	// ols=document.getElementById("overlay1").style;
	// ols_left=($(window).width()-<%=width%>-75)/2;
	// ols_top=10;
	// olcs_right=0;
	// try{
	// ols.left=ols_left+"px";
	// }catch(e){
	// //alert(e);
	// }
	// try{
	// ols.top=ols_top+"px";
	// }catch(e){
	// //alert(e);
	// }
	// //move close for FireFox (not working)
	// olce=document.getElementById("overlay1").getElementsByTagName("A");
	// for (var i = 0; i < olce.length; i++) {
	// olc=olce[i];
	// olcs=olc.style;
	// className = olc.getAttribute("class");
	// id = olc.getAttribute("id");
	// if(className='close' && id!='player'){
	// olc.style.left=(<%=width%>+50)+"px";
	// olcs.right=olcs_right+"px";
	// olcs.top=(ols_top+100)+"px";
	// //alert(olcs);
	// }
	// }
	//
	// heder_font_size=$(window).width()*0.025;
	// if(heder_font_size<20){
	// heder_font_size=20;
	// }
	// if(heder_font_size>30){
	// heder_font_size=30;
	// }
	// $('div.header').css('font-size',heder_font_size+'px');
};

var window_resize_listener = function(e) {
	addEvent(window, 'resize', window_resize);
};

var resizeTimeoutId;

var window_resize = function(e) {
	window.clearTimeout(resizeTimeoutId);
	resizeTimeoutId = window.setTimeout('doResizeCode();', 10);
};

var video_close = function(player_id) {
	$f(player_id).unload();
};

var video_play = function() {
	$f(player_id).play();
};

var open = function(id) {
	show_hide_Element(id + '_', 0, 0);
	show_hide_Element(id + '_', 1, 1);
	return null;
};

var close = function(id) {
	show_hide_Element(id + '_', 0, 2);
	show_hide_Element(id + '_', 1, 2);
	return null;
};

var isTextOK = function(title, atFormID, id) {
	ok = false;
	atText = getFormObject(atFormID, id);
	if (atText.value == "") {
		alert("Please fill in " + title);
		atText.focus();
	} else {
		ok = true;
	}
	return ok;
};

var getFormObjectText = function(atFormID, id) {
	return getFormObject(atFormID, id).value;
};

var getFormObject = function(atFormID, id) {
	// formObject = null;
	// formObject = document.forms[atFormID][id];
	// alert(atFormID + "." + id + "=" + formObject.value);
	return document.forms[atFormID][id];
};

var isTextEMailOK = function(title, atFormID, id) {
	ok = false;
	atTextEMail = getFormObject(atFormID, id);
	if (atTextEMail.value == "") {
		alert("Please fill in " + title);
		atTextEMail.focus();
	} else if (!isEMail(atTextEMail.value)) {
		alert("Please fix " + title);
		atTextEMail.focus();
	} else {
		ok = true;
	}
	return ok;
};

var isEMail = function(strEmail) {
	var emailFilter = /^.+@.+\..{2,3}$/;
	if (!(emailFilter.test(strEmail))) {
		return false;
	}

	var illegalChars = /[\(\)\<\>\,\;\:\#\'\\\/\"\[\]]/;
	if (strEmail.match(illegalChars)) {
		return false;
	}

	var at = "@";
	var lat = strEmail.indexOf(at);
	if (strEmail.indexOf(at, (lat + 1)) != -1) {
		return false;
	}
	if (strEmail.indexOf(at + ".") != -1) {
		return false;
	}
	if (strEmail.indexOf("." + at) != -1) {
		return false;
	}
	if (strEmail.lastIndexOf(".") == strEmail.length - 1) {
		return false;
	}
	if (strEmail.indexOf(at + at) != -1) {
		return false;
	}
	if (strEmail.indexOf("..") != -1) {
		return false;
	}
	return true;
};

var isTextNumberOK = function(title, atFormID, id) {
	ok = false;
	atNumber = getFormObject(atFormID, id);
	if (atNumber.value == "") {
		alert("Please fill in " + title + " using only numbers");
		atNumber.focus();
	} else if (!isNumber(atNumber.value)) {
		alert("Please use only numbers at " + title);
		atNumber.focus();
	} else {
		ok = true;
	}
	return ok;
};

var isNumber = function(number) {
	var atNumber = 0;
	while (atNumber < number.length) {
		if (number.substring(atNumber, atNumber + 1) > "9"
				|| number.substring(atNumber, atNumber + 1) < "0") {
			return false;
		}
		atNumber++;
	}
	return true;
};

var isCheckOK = function(title, atFormID, id) {
	ok = false;
	atChecks = getFormObject(atFormID, id);
	for ( var atCheck = 0; atCheck < atChecks.length; atCheck++) {
		if (atChecks[atCheck].checked) {
			ok = true;
		}
	}
	if (!ok) {
		alert("Please check " + title);
		atChecks[0].focus();
	}
	return ok;
};

var isSelectOK = function(title, atFormID, id) {
	ok = false;
	atSelect = getFormObject(atFormID, id);
	if (atSelect.selectedIndex == 0) {
		alert("Please select " + title);
		atSelect.focus();
	} else {
		ok = true;
	}
	return ok;
};

var show_hide = function(group_id, tab_id, at_id) {
	show_hide_Tab(group_id, tab_id, at_id);
	show_hide_Link(group_id, tab_id, at_id);
	show_hide_Element(group_id, tab_id, at_id);
	show_hide_IMG(group_id, tab_id, at_id);
};

var show_hide_Tabs = function(group_id, tab_id, at_id) {
	for ( var atTab = 1; atTab < at_id + 1; atTab++) {
		show_hide_Tab("Tab_" + group_id, tab_id, atTab);
		show_hide_Tab_Class("Tab_" + group_id + "Tabs_", tab_id, atTab,
				"Tab_White", "Tab_Grey");
		show_hide_Tab_Class("Tab_" + group_id + "Links_", tab_id, atTab,
				"TAB_Link_Active", "TAB_Link");
	}
};

var show_hide_Tab = function(group_id, tab_id, at_id) {
	show_hide_Tab_Class(group_id, tab_id, at_id, "on", "off");
};

var show_hide_Tab_Class = function(group_id, tab_id, at_id, class_on, class_off) {
	try {
		id = group_id + at_id;
		element = document.getElementById(id);
		if (tab_id == at_id) {
			element.className = class_on;
		} else {
			element.className = class_off;
		}
	} catch (e) {
		alert(e + ' show_hide_Tab_Class(' + group_id + ',' + tab_id + ','
				+ at_id + ',' + class_on + ',' + class_off + ')');
	}
	// alert('show_hide_Tab_Class(' + group_id + ',' + tab_id + ',' + at_id +
	// ','
	// + class_on + ',' + class_off + ')');
};

var show_hide_Link = function(group_id, tab_id, at_id) {
	// alert('show_hide_Element('+group_id+','+tab_id+','+at_id+')');
	id = group_id + at_id;
	try {
		element = document.getElementById(id);
		if (tab_id == at_id) {
			element.className = group_id + at_id;
			element.style.display = "block";
			element.style.opacity = "1";
		} else {
			element.className = "off";
			element.style.display = "none";
			element.style.opacity = "0";
		}
	} catch (e) {
		alert(e + ' show_hide_Link(' + group_id + ',' + tab_id + ',' + at_id
				+ ') id=~' + id + '~');
	}
};

var show_hide_Element = function(group_id, tab_id, at_id) {
	try {
		id = group_id + at_id;
		element = document.getElementById(id);
		if (tab_id == at_id) {
			element.style.visibility = "visible";
			element.style.display = "block";
			element.style.opacity = "1";
		} else {
			element.style.visibility = "hidden";
			element.style.display = "none";
			element.style.opacity = "0";
		}
	} catch (e) {
		alert(e + ' show_hide_Element(' + group_id + ',' + tab_id + ',' + at_id
				+ ')');
	}
};

var show_IMG = function(img_id, new_src) {
	try {
		imgobj = document.images[img_id];
		// access img obj
		imgobj.src = "";
		imgobj.src = new_src;
		// check for support for filters
		if (imgobj.filters && imgobj.filters[0] != null) {
			imgobj.filters[0].apply();
			imgobj.filters[0].play();
		}
	} catch (e) {
		alert(e + ' show_IMG(' + img_id + ',' + new_src + ')');
	}
};

function objectEval(text) {
	// eval() breaks when we use it to get an object using the { a:42, b:'x' }
	// syntax because it thinks that { and } surround a block and not an object
	// So we wrap it in an array and extract the first element to get around
	// this.
	// This code is only needed for interpreting the parameter input fields,
	// so you can ignore this for normal use.
	// The regex = [start of line][whitespace]{[stuff]}[whitespace][end of line]
	if (text == undefined) {
		return undefined;
	}
	text = text.replace(/\n/g, ' ');
	text = text.replace(/\r/g, ' ');
	if (text.match(/^\s*\{.*\}\s*$/)) {
		text = '[' + text + '][0]';
	}
	return eval(text);
}
