/*
Script-static.js © 2008
Licensed under the Creative Commons
Attribution-Noncommercial-Share Alike
http://creativecommons.org/licenses/by-nc-sa/3.0/
*/

/* 
	========== MD5 ==========
	http://kamads.com/kamads_ads/loginscript.php
*/

function HashTogether(data, key) {
	// PHP = hash_hmac(algorithm, DATA , KEY)
	// Javascript  =  hex_hmac_md5(KEY, DATA)
	return hex_hmac_md5(key, data);
}

function UserPwdMD5login() {
	var strUserReferrer = document.TOfilmfest_UserLogin.strUserReferrer.value;
	var intUserSerial = document.TOfilmfest_UserLogin.intUserSerial.value;
	var strUserPwd = document.TOfilmfest_UserLogin.strUserPwd.value;
	var strUserPwdMD5 = PasswordMD5(strUserReferrer, intUserSerial, strUserPwd);
	document.TOfilmfest_UserLogin.strUserPwd.value = strUserPwdMD5;
	// return false;
}

function UserPwdMD5loggedin() {
	var strUserReferrer = document.TOfilmfest_UserLoggedIn.strUserReferrer.value;
	var intUserSerial = document.TOfilmfest_UserLoggedIn.intUserSerial.value;
	var strUserPwd = document.TOfilmfest_UserLoggedIn.strUserPwd.value;
	var strUserPwdMD5 = PasswordMD5(strUserReferrer, intUserSerial, strUserPwd);
	document.TOfilmfest_UserLoggedIn.strUserPwd.value = strUserPwdMD5;
	// return false;
}

function PasswordMD5(strUserReferrer, intUserSerial, strUserPwd) {
	var strUserPwdRef = HashTogether(strUserReferrer, strUserPwd);
	var strUserPwdMD5 = HashTogether(intUserSerial, strUserPwdRef);
	return strUserPwdMD5;
}

function UserLogin() {
	UserPwdMD5login();
	document.TOfilmfest_UserLogin.submit();
	return false;
}

function UserLogout() {
	var form = document.forms['TOfilmfest_UserLoggedIn'];
	var input_element = document.createElement("input");
	input_element.type = "hidden";
	input_element.name = "ysnUserLogout";
	input_element.value = Boolean(true);
	form.appendChild(input_element);
	form.submit();
}

function UserCreate() {
	var form = document.forms['TOfilmfest_UserLogin'];
	var input_element = document.createElement("input");
	input_element.type = "hidden";
	input_element.name = "ysnUserNew";
	input_element.value = Boolean(true);
	form.appendChild(input_element);
	form.submit();
}

function UserForgot() {
	var form = document.forms['TOfilmfest_UserLogin'];
	var input_element = document.createElement("input");
	input_element.type = "hidden";
	input_element.name = "ysnForgotPwd";
	input_element.value = Boolean(true);
	form.appendChild(input_element);
	form.submit();
}

function UserPwdUpdate() {
	var form = document.forms['TOfilmfest_UserLoggedIn'];
	var input_element = document.createElement("input");
	input_element.type = "hidden";
	input_element.name = "ysnUserPwdUpdate";
	input_element.value = Boolean(true);
	form.appendChild(input_element);
	form.submit();
}

function UserPwdUpdated() {
	var form = document.forms['TOfilmfest_UserLoggedIn'];
	var input_element = document.createElement("input");
	input_element.type = "hidden";
	input_element.name = "ysnUserPwdUpdated";
	input_element.value = Boolean(true);
	form.appendChild(input_element);
	UserPwdMD5loggedin();
	form.submit();
}

function UserEmailUpdate() {
	var form = document.forms['TOfilmfest_UserLoggedIn'];
	var input_element = document.createElement("input");
	input_element.type = "hidden";
	input_element.name = "ysnUserEmailUpdate";
	input_element.value = Boolean(true);
	form.appendChild(input_element);
	form.submit();
}

function UserEmailUpdated() {
	var form = document.forms['TOfilmfest_UserLoggedIn'];
	var input_element = document.createElement("input");
	input_element.type = "hidden";
	input_element.name = "ysnUserEmailUpdated";
	input_element.value = Boolean(true);
	form.appendChild(input_element);
	UserPwdMD5loggedin();
	form.submit();
}

function UserRefresh() {
	var form = document.forms['TOfilmfest_UserLoggedIn'];
	var input_element = document.createElement("input");
	input_element.type = "hidden";
	input_element.name = "ysnUserRefresh";
	input_element.value = Boolean(true);
	form.appendChild(input_element);
	form.submit();
}

/* 
 ========== Toggle element by id ==========
*/

function ToggleElementById(Id, Source) {
	var FrameId = 'Frame_' + Id;
	var FrameElement = document.getElementById(FrameId);
	if (FrameElement.style.display == 'inline') {
		FrameElement.style.display = 'none';
	} else if (FrameElement.style.display == 'block') {
		FrameElement.style.display = 'none';
	} else {
		FrameElement.src = Source;
		FrameElement.style.display = 'inline';
	}
}

/* 
 ========== Open Achor Frame ==========
*/

function OpenAnchorFrame() {
	// in location bar 
	var href = window.location.href;
	// anchor point
	var pound = href.indexOf('#');
	if (pound) {
		var end = href.length;
		var anchor = href.substring((pound + 1), end);
		var FrameId = 'Frame_' + anchor;
		var FrameElement = document.getElementById(FrameId);
		if (FrameElement) {
			var dash = anchor.indexOf('--');
			var file = anchor;
			if (dash !== -1) {
				file = anchor.substring(0, dash);
			}
			var source = '../film?t=' + file; // + '#' + Id;
			FrameElement.src = source;
			FrameElement.style.display = 'inline';
			// window.location = href;
		}
	}
}

/* 
 ========== Target all external links ==========
*/

function TargetAllExternalLinks() {
	// get all anchors
	var anchors = document.getElementsByTagName("a");
	// for each anchor...
	for (var index = 0; index < anchors.length; index++) {
		// examine href (lowercase)
		var href = anchors[index].href.toLowerCase();
		// returns -1 if the string value to search for never occurs
		if ((href.indexOf('tofilmfest') == -1) && (href.indexOf('172.16.0.25') == -1) && (href.indexOf('#TOP') == -1)) {
	 		// set target and class
			anchors[index].target = "_blank";
			anchors[index].className = "external";
			// examine onclick attribute
			var anchoronclick = anchors[index].getAttribute('onclick');
			if (anchoronclick === null) {
				anchors[index].setAttribute("onclick", ((anchoronclick !== null) ? anchoronclick: "") + "pageTracker._trackPageview(URLname(href));");
			}
		}
	}
}

/* 
 ========== URL name ==========
*/

function URLname(strURL) {
	var len = strURL.length;
	// remove prefix
	var pre = strURL.indexOf('://');
	if (pre !== -1) {
		strURL = strURL.substring(pre + 3, len);
	}
	// remove www.
	var www = strURL.substring(0, 4); // last char in substring not included
	if (www == 'www.') {
		len = strURL.length;
		strURL = strURL.substring(4, len);
	}
	// remove URI
	var slash = strURL.indexOf('/');
	if (slash !== -1) {
		strURL = strURL.substring(0, slash); // last char in substring not included
	}
	// alert('/link/' + strURL);
	return '/link/' + strURL;
}

/* 
AddEvent function
*/

function addEvent(element, event, funct) {
	if (element.attachEvent) {
		element['e' + event + funct] = funct;
		element[event + funct] = function () {
			element['e' + event + funct](window.event);
		};
		element.attachEvent('on' + event, element[event + funct]);
		var r = element.attachEvent('on' + event, funct);
		return r;
	} else if (element.addEventListener) {
		element.addEventListener(event, funct, false);
		return true;
	} else {
		element['on' + event] = funct;
	}
}

addEvent(window, "load", OpenAnchorFrame);
addEvent(window, "load", TargetAllExternalLinks);