/* 
	========== 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 PasswordMD5(strUserReferrer, intUserSerial, strUserPwd) {
	var strUserPwdRef = HashTogether(strUserReferrer, strUserPwd);
	var strUserPwdMD5 = HashTogether(intUserSerial, strUserPwdRef);
	return strUserPwdMD5;
}

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 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();
}

/*
Programming: Paul Smiechowicz <paul@designofadecade.com>
*/

var Rating_Message = new Array();
Rating_Message[0]    = "Unread";
Rating_Message[0.5]  = "Definite Pass";
Rating_Message[1]    = "Not interested";
Rating_Message[1.5]  = "Probably not";
Rating_Message[2]    = "Don't think so…";
Rating_Message[2.5]  = "Don't know…";
Rating_Message[3]    = "Might be good";
Rating_Message[3.5]  = "Probably good";
Rating_Message[4]    = "Interested";
Rating_Message[4.5]  = "Very Interested";
Rating_Message[5]    = "Must see!";		
//
Rating_SubmitMessage = "Updating…";
Rating_PostFile      = "../lib/pick.php";

function Rating(Rating, ItemID, RatingObject) {
	//
	Rating = parseFloat(Rating);
	Rating = parseInt(Rating) / 2 / 10;
	if (Rating > 5) {
		Rating = 5;
	}
	if (Rating < 0 || Rating == '') {
		Rating = 0;
	}
	//
	// document.getElementById('MyPick-desc_' + RatingObject).innerHTML = Rating_Message[Rating];
	//
	var RatingBlock = '';
	for (i = 1; i <= 5; i++) {
		if (parseInt(Rating) >= i) {
			RatingBlock += '<A TITLE="' + Rating_Message[(i - 0.5)] + '"><img src="../img/_grey/img/pick/Pick_left-full.gif" onmouseover="RatingRollOverOut(' + (i - 0.5) + ',\'' + RatingObject + '\')" onmouseout="RatingRollOverOut(' + Rating + ',\'' + RatingObject + '\')" id="RatingStart_' + i + '_5_' + RatingObject + '" style="cursor:pointer" onclick="RatingSubmit(' + (i - 0.5) + ',\'' + ItemID + '\',\'' + RatingObject + '\')" /></A>';
			RatingBlock += '<A TITLE="' + Rating_Message[(i - 0.0)] + '"><img src="../img/_grey/img/pick/Pick_right-full.gif" onmouseover="RatingRollOverOut(' + i + ',\'' + RatingObject + '\')" onmouseout="RatingRollOverOut(' + Rating + ',\'' + RatingObject + '\')" id="RatingStart_' + i + '_' + RatingObject + '" style="cursor:pointer" onclick="RatingSubmit(' + i + ',\'' + ItemID + '\',\'' + RatingObject + '\')" /></A>';
		} else if ((Rating + 1) > i) {
			RatingBlock += '<A TITLE="' + Rating_Message[(i - 0.5)] + '"><img src="../img/_grey/img/pick/Pick_left-full.gif" onmouseover="RatingRollOverOut(' + (i - 0.5) + ',\'' + RatingObject + '\')" onmouseout="RatingRollOverOut(' + Rating + ',\'' + RatingObject + '\')" id="RatingStart_' + i + '_5_' + RatingObject + '" style="cursor:pointer" onclick="RatingSubmit(' + (i - 0.5) + ',\'' + ItemID + '\',\'' + RatingObject + '\')"/></A>';
			RatingBlock += '<A TITLE="' + Rating_Message[(i - 0.0)] + '"><img src="../img/_grey/img/pick/Pick_right-empty.gif" onmouseover="RatingRollOverOut(' + i + ',\'' + RatingObject + '\')" onmouseout="RatingRollOverOut(' + Rating + ',\'' + RatingObject + '\')" id="RatingStart_' + i + '_' + RatingObject + '" style="cursor:pointer" onclick="RatingSubmit(' + i + ',\'' + ItemID + '\',\'' + RatingObject + '\')"/></A>';
		} else {
			RatingBlock += '<A TITLE="' + Rating_Message[(i - 0.5)] + '"><img src="../img/_grey/img/pick/Pick_left-empty.gif" onmouseover="RatingRollOverOut(' + (i - 0.5) + ',\'' + RatingObject + '\')" onmouseout="RatingRollOverOut(' + Rating + ',\'' + RatingObject + '\')" id="RatingStart_' + i + '_5_' + RatingObject + '" style="cursor:pointer" onclick="RatingSubmit(' + (i - 0.5) + ',\'' + ItemID + '\',\'' + RatingObject + '\')"/></A>';
			RatingBlock += '<A TITLE="' + Rating_Message[(i - 0.0)] + '"><img src="../img/_grey/img/pick/Pick_right-empty.gif" onmouseover="RatingRollOverOut(' + i + ',\'' + RatingObject + '\')" onmouseout="RatingRollOverOut(' + Rating + ',\'' + RatingObject + '\')" id="RatingStart_' + i + '_' + RatingObject + '" style="cursor:pointer" onclick="RatingSubmit(' + i + ',\'' + ItemID + '\',\'' + RatingObject + '\')"/></A>';
		}
	}
	document.getElementById('MyPick-image_' + RatingObject).innerHTML = RatingBlock;
	RatingImages('../img/_grey/img/pick/Pick_left-empty.gif',
	             '../img/_grey/img/pick/Pick_left-full.gif',
			 '../img/_grey/img/pick/Pick_right-empty.gif',
			 '../img/_grey/img/pick/Pick_right-full.gif');
}

function RatingRollOverOut(Rating, RatingObject) {
	// document.getElementById('MyPick-desc_' + RatingObject).innerHTML = Rating_Message[Rating];
	for (i = 1; i <= 5; i++) {
		if (parseInt(Rating) >= i) {
			document.getElementById('RatingStart_' + i + '_5_' + RatingObject).src = '../img/_grey/img/pick/Pick_left-full.gif';
			document.getElementById('RatingStart_' + i + '_' + RatingObject).src   = '../img/_grey/img/pick/Pick_right-full.gif';
		} else if ((Rating + 1) > i) {
			document.getElementById('RatingStart_' + i + '_5_' + RatingObject).src = '../img/_grey/img/pick/Pick_left-full.gif';
			document.getElementById('RatingStart_' + i + '_' + RatingObject).src   = '../img/_grey/img/pick/Pick_right-empty.gif';
		} else {
			document.getElementById('RatingStart_' + i + '_5_' + RatingObject).src = '../img/_grey/img/pick/Pick_left-empty.gif';
			document.getElementById('RatingStart_' + i + '_' + RatingObject).src   = '../img/_grey/img/pick/Pick_right-empty.gif';
		}
	}
}

function RatingImages() {
	var d = document;
	if (d.images) {
		if (!d.p) d.p = new Array();
		var i, j = d.p.length,
		a = RatingImages.arguments;
		for (i = 0; i < a.length; i++)
		if (a[i].indexOf("#") != 0) {
			d.p[j] = new Image;
			d.p[j++].src = a[i];
		}
	}
}

function RatingSubmit(Rating, ItemID, RatingObject) {
	document.getElementById('MyPick-desc_' + RatingObject).innerHTML = Rating_SubmitMessage;
	var parameters = "MyPick=" + encodeURIComponent((parseFloat(Rating) * 2 * 10)) + "&f=" + encodeURIComponent(ItemID);
	PostRequest('RatingHTTP' + RatingObject, Rating_PostFile, parameters, 'RatingResponse(\'' + RatingObject + '\',', 'RatingHTTPError', false);
}

function RatingResponse(RatingObject, Rating) {
	Rating = parseInt(Rating) / 2 / 10;
	Rating = parseFloat(Rating);
	if (Rating > 5) {
		Rating = 5;
	}
	if (Rating < 0 || Rating == '') {
		Rating = 0;
	}
	document.getElementById('MyPick-desc_' + RatingObject).innerHTML = Rating_Message[Rating];
	for (i = 1; i <= 5; i++) {
//		document.getElementById('RatingStart_' + i + '_' + RatingObject).onmouseout = new Function('RatingRollOverOut(' + Rating + ',\'' + RatingObject + '\')');
		document.getElementById('RatingStart_' + i + '_5_' + RatingObject).onmouseout = new Function('RatingRollOverOut(' + Rating + ',\'' + RatingObject + '\')');
		document.getElementById('RatingStart_' + i + '_' + RatingObject).onmouseout = new Function('RatingRollOverOut(' + Rating + ',\'' + RatingObject + '\')');
		if (parseInt(Rating) >= i) {
			document.getElementById('RatingStart_' + i + '_5_' + RatingObject).src = '../img/_grey/img/pick/Pick_left-full.gif';
			document.getElementById('RatingStart_' + i + '_' + RatingObject).src   = '../img/_grey/img/pick/Pick_right-full.gif';
		} else if ((Rating + 1) > i) {
			document.getElementById('RatingStart_' + i + '_5_' + RatingObject).src = '../img/_grey/img/pick/Pick_left-full.gif';
			document.getElementById('RatingStart_' + i + '_' + RatingObject).src   = '../img/_grey/img/pick/Pick_right-empty.gif';
		} else {
			document.getElementById('RatingStart_' + i + '_5_' + RatingObject).src = '../img/_grey/img/pick/Pick_left-empty.gif';
			document.getElementById('RatingStart_' + i + '_' + RatingObject).src   = '../img/_grey/img/pick/Pick_right-empty.gif';
		}
	}
}

function RatingHTTPError(Message) {
	alert(Message);
}

function PostRequest(httpRequest, url, parameters, callfunction, errorfunction, parsexml) {
	window[httpRequest] = false;
	if (window.XMLHttpRequest) {
		window[httpRequest] = new XMLHttpRequest();
		if (window[httpRequest].overrideMimeType) {
			window[httpRequest].overrideMimeType('text/html');
		}
	} else if (window.ActiveXObject) {
		try {
			window[httpRequest] = new ActiveXObject("Msxml2.XMLHTTP");
		} catch(e) {
			try {
				window[httpRequest] = new ActiveXObject("Microsoft.XMLHTTP");
			} catch(e) {}
		}
	}
	if (!window[httpRequest]) {
		if (errorfunction != '') {
			var ErrorFunction = new Function('' + errorfunction + '(\'1\')');
			ErrorFunction();
		}
		return false;
	}
/*	window[httpRequest].open('POST', url, true);
	window[httpRequest].setRequestHeader("Content-type", "application/x-www-form-urlencoded");
	window[httpRequest].setRequestHeader("Content-length", parameters.length);
	window[httpRequest].setRequestHeader("Connection", "close");
	window[httpRequest].send(parameters);
*/
	window[httpRequest].onreadystatechange = new Function('PostRequestReturn("' + httpRequest + '","' + callfunction + '","' + errorfunction + '",' + parsexml + ')');
	window[httpRequest].open('GET', url + '?' + parameters, true);
	window[httpRequest].send(null);
}

function PostRequestReturn(httpRequest, callfunction, errorfunction, parsexml) {
	if (window[httpRequest].readyState == 4) {
		if (window[httpRequest].status == 200) {
			Result = window[httpRequest].responseText;
			if (parsexml) {
				var ResponseFunction = new Function('' + callfunction + 'StringToXML(Result))');
			} else {
				var ResponseFunction = new Function('' + callfunction + 'Result)');
			}
			ResponseFunction();
		} else {
			if (errorfunction != '') {
				var ErrorFunction = new Function('' + errorfunction + '(\'HTTP Request Error\')');
				ErrorFunction();
			}
		}
	}
}