allUploads = new Array ();
isUploading = false;

var menuTopPos = 0;

var errMessages = new Array ();
errMessages['NEW_COMPANY_EXISTS'] = "Company exists";
errMessages['NEW_COMPANY_EMPTY'] = "Company name is empty";
errMessages['USER_EXISTS'] = "User with that username already exists";
errMessages['FIELDS_EMPTY'] = "Some required fields are empty";
errMessages["FILES_DELETED"] = "Files were deleted successfully";
errMessages["CHOOSE_COMPANY"] = "Please choose the company";

function msg (what) {
	var arr = what.split (',');

	var msg = "Please fix the following errors to proceed:\n\n";

	for (var i = 0; i < arr.length; i++) {
		msg += "- " + errMessages[arr[i]] + ((i == (arr.length - 1)) ? "." : ";") + "\n";
	}

	alert (msg);
}

function getR(frmName, elName) {
	// Go through the forms
	for (var i = 0; i < document.forms[frmName].elements[elName].length; i++) {
		var obj = document.forms[frmName].elements[elName][i];

		if (obj.checked) {
			return document.forms[frmName].elements[elName][i].value;
		}
	}

	return "";
}

function getC(elId) {
	var obj = document.getElementById (elId);

	return obj ? ((obj.checked) ? "Y" : "") : "";
}

function getT(elId) {
	var obj = document.getElementById (elId);

	return obj ? obj.value : "";
}

function putT(elId, newValue) {
	var obj = document.getElementById (elId);

	obj.value = newValue;
}

function getS(elId) {
	var obj = document.getElementById (elId);

	return obj ? (obj.options[obj.selectedIndex].value) : "";
}

function getE(elId) {
	var obj = document.getElementById (elId);

	return obj;
}

function actionDefault () {
	xajax_triggerAction('default');
}

function actionLogin() {
	xajax_triggerAction('login', getT('username'), getT('pass'), getC('remember_me'));
}

function actionHome () {
	xajax_triggerAction('default');
}

function actionContactUs() {
	xajax_triggerAction('contact_us');
}

function actionHelp () {
	xajax_triggerAction('help');
}

function actionLogout () {
	xajax_triggerAction('logout');
}

function actionChooseCompany (company, usertype, folder) {
	saveMenuPos ();
	xajax_triggerAction('choose_company', company, usertype, folder);
}

function actionForceEditUser (company, usertype, force_edit_user) {
	xajax_triggerAction('choose_company', company, usertype, '', force_edit_user);
}

function actionDeleteCompany () {
	xajax_triggerAction('delete_company');
}

function actionDeleteCompanyGo () {
	xajax_triggerAction('delete_company_go');
}

function actionDeleteClient (clientName) {
	xajax_triggerAction('delete_client', clientName);
}

function actionDeleteClientGo (clientName) {
	xajax_triggerAction('delete_client_go', clientName);
}

function actionChangeEditUser () {
	xajax_triggerAction('change_edit_user', getS('user_to_edit'));
}

function actionSendFileToArchive (file_id) {
	xajax_triggerAction('send_to_archive', file_id);
}


function actionAddClient () {
	xajax_triggerAction('add_client');
}

function actionAddCompany () {
	xajax_triggerAction('add_company');
}

function actRenameCompany () {
	saveMenuPos ();
	xajax_triggerAction('rename_company', getT('new_company'), getS('default_category'));
}

function actionUpdateCustomer () {
	xajax_triggerAction('update_customer', getT('mode'), getT('company'), getT('first_name'), getT('last_name'), getT('email'), getS('market'), getT('new_login'), getT('pass'), getT('usertype'), getS('access_type'), getT('greeting'), getC('send_welcome'), getS('default_category'));
}

function updateSpots (max_spots) {
	// Get the number of the spots
	spots_number = getS ('number_of_spots');

	for (i = 0; i < max_spots; i++) {
		current_style = document.getElementById('spot_'+i);

		new_style = (i < spots_number) ? "" : "none";

		if (current_style.style.display != new_style) {
			document.getElementById ('spot_'+i).style.display = new_style;
		}
	}
}

function browseSpotFile (spotId) {
	document.getElementById('spot_file_'+spotId).click();
	document.getElementById('spot_name_'+spotId).value = document.getElementById('spot_file_'+spotId).value;
}

function updateProgressBar (index, percentage) {
	var obj = document.getElementById("spot_message_"+index);

	newHTML  = "<table border='0' cellpadding='4' cellspacing='0'>";
	newHTML += "<tr valign='middle'>";
	newHTML += "<td nowrap>"+percentage+"%</td>";
	newHTML += "<td>";
	newHTML += "<table width='200' height='12' border='0' class='Box' cellpadding='0' cellspacing='0'>";
	newHTML += "<tr>";
	newHTML += "<td width='"+(percentage*2)+"' background='skin1/images/progress_bar_bg.gif'>";
	newHTML += "<img src='skin1/images/spacer.gif' width='"+(percentage*2)+"' height='12' alt=''>";
	newHTML += "</td>";
	newHTML += "<td width='"+((100-percentage)*2)+"' bgcolor='red'>";
	newHTML += "<img src='skin1/images/spacer.gif' width='"+((100-percentage)*2)+"' height='12' alt=''>";
	newHTML += "</td>";
	newHTML += "</tr>";
	newHTML += "</table>";
	newHTML += "</td>";
	newHTML += "</tr>";
	newHTML += "</table>";

	obj.innerHTML = newHTML;
}

function uploadSpot (i, uid, isStart) {
	xajax_triggerAction ('update_file_info', i, uid, isStart);
}

function continueUpload () {
	if (allUploads.length > 0) {
		isUploading = true;
		var data = allUploads.pop();

		var index = data[0];

		xajax_triggerAction ("start_uploading", getT("title_"+index), getT("width_"+index), getT("height_"+index), getC("notify_"+index), getT("users_emails"), getT("descr_"+index), getS("category_"+index), getS("price_range_"+index));
		uploadSpot (data[0], data[1], 'Y');
		document.forms["spot_form_"+data[0]].submit();
	} else {
		isUploading = false;
	}
}

function resetUploads (max_spots, defaultSpotWidth, defaultSpotHeight) {
	if (isUploading) {
		xajax_triggerAction ("wait_uploading");
		return;
	}

	for (i = 0; i < max_spots; i++) {
		putT ('title_'+i, '');
		putT ('width_'+i, defaultSpotWidth);
		putT ('height_'+i, defaultSpotHeight);
		putT ('spot_file_'+i, '');
		putT ('descr_'+i, '');
		document.getElementById('spot_message_'+i).innerHTML = "";
	}
}

function uploadSpots (max_spots) {
	// Ensure that there are spots which are uploading now
	if (isUploading) {
		xajax_triggerAction ("wait_uploading");
		return;
	}

	// Upload only those spots which are not empty
	spots_number = getS ('number_of_spots');

	hasUploads = false;

	fieldsOk = true;

	for (var i = 0; i < spots_number; i++) {
		var obj = document.getElementById ('spot_file_'+i);

		if (obj.value != "") {
			// Check for title/width/height
			if ((getT('title_'+i) == "") || (getT('width_'+i) == "") || (getT('height_'+i) == "") || (getS('category_'+i) == "")) {
				fieldsOk = false;
				xajax_triggerAction ('upload_error_empty', i);
			}
		}
	}

	if (fieldsOk) {
		for (var i = 0; i < spots_number; i++) {
			var obj = document.getElementById ('spot_file_'+i);

			if (obj.value != "") {
				var uid = document.getElementById ('spot_uid_'+i).value;
				allUploads.push (new Array (i, uid));
				xajax_triggerAction ("prepare_for_upload", i);

				hasUploads = true;
			}
		}
	}

	if (hasUploads) {
		allUploads.reverse();
		continueUpload();
	} else if (fieldsOk) {
		xajax_triggerAction ("upload_no_files");
	}
}

function updateNewCompany () {
	var companyObj = document.getElementById ("company");
	var newCompanyObj = document.getElementById ("new_company");

	newCompanyObj.disabled = !((companyObj.options[companyObj.selectedIndex].value == "") || (companyObj.options[companyObj.selectedIndex].value == "!"));
	new_company_row.style.display = newCompanyObj.disabled ? "none" : "";
}

function isArrayUnique (checkArray, checkEmpty) {
	result = true;

	compareArray = new Array ();

	for (i in checkArray) {
		if (checkEmpty && (checkArray[i] == "")) {
			result = false;
		} else {
			if (compareArray[checkArray[i]] == 1) {
				result = false;
			} else {
				compareArray[checkArray[i]] = 1;
			}
		}
	}

	return result;
}

function updateFileData () {
	xajax_triggerAction ("update_file_data", getT('file_id'), getT('file_title'), getS('folder'), getT('size_x'), getT('size_y'), getT('descr'), getS("video_category"), getS("price_range"));
}

function updateFolders (foldersCount) {
	var updateFolders = new Array ();

	newFolder = getT ("new_folder");

	for (i = 0; i < foldersCount; i++) {
		updateFolders[getT("data_"+i+"_old")] = getT("data_"+i+"_new");
	}

	saveMenuPos ();
	xajax_triggerAction ("update_folders", newFolder, updateFolders);
}

function deleteFolder (folderIndex) {
	folderName = getT ("data_"+folderIndex+"_old");

	saveMenuPos ();
	xajax_triggerAction ('delete_folder', folderName);
}

function deleteFile (fileId) {
	if (confirm ("Are you sure you want to delete this file?") && confirm ("Are you really sure you want to delete this file?")) {
		xajax_triggerAction ("delete_file", fileId);
	}
}

function uploadZip () {
	notImplemented ();
}

function notImplemented () {
	alert ("Sorry, this function is not implemented yet..");
}

function viewFile (fileId) {
	xajax_triggerAction ("view_file", fileId);
}

function postFeedback () {
	var spotStatus = "";

	for (i=document.feedback_form.spot_status.length-1; i > -1; i--) {
		if (document.feedback_form.spot_status[i].checked) {
			spotStatus = document.feedback_form.spot_status[i].value;
		}
	}

	xajax_triggerAction ("post_feedback", getT("file_id"), spotStatus, getT("feedback"), $('#banner_ad').val());
}

function customerDefault (feedbackPosted) {
	xajax_triggerAction ("default", feedbackPosted);
}

function emailClientsGo (fileId) {
	xajax_triggerAction ("email_clients_go", fileId, getT("email_subject"), getT("email_body"), getT("email_cc"));
}

function emailClient (username) {
	xajax_triggerAction ("email_client", username);
}

function emailClientGo (username) {
	xajax_triggerAction ("email_client_go", username, getT("email_subject"), getT("email_body"));
}

function forgetPassword () {
	xajax_triggerAction ("forget_password", getT('username'));
}

function showGreetingText (showIt) {
	toShow = document.getElementById ("send_welcome").checked;

	document.getElementById("row_greeting").style.display = toShow ? "" : "none";
}

function actionSearchSpots () {
	xajax_triggerAction("search_spots");
}

function actionSearchSpotsStart () {
	xajax_triggerAction("search_spots_start", getT("search_keyword"), getT("search_posted_by"), getS("search_company"), getR("search_form", "by_date"), getS("start_month"), getS("start_day"), getS("start_year"), getS("end_month"), getS("end_day"), getS("end_year"), getS("search_category"), getS("price_range"));
}

function switchDateRange (newState) {
	getE("start_day").disabled = getE("start_month").disabled = getE("start_year").disabled = getE("end_day").disabled = getE("end_month").disabled = getE("end_year").disabled = newState;
}

function checkAll (formName, newState) {
	var obj = document.getElementById ("check_all");
	var boxes = document.forms[formName].file_id;

	if (obj)
		newState = obj.checked;

	// Now loop through the checkboxs and tick/tick off them all except the one having id "check_all"
	for (i = 0; i < boxes.length; i++) {
		boxes[i].checked = newState;
	}
}

function downloadOldVideos () {
	var formName = "form_results";
	var fileIds = new Array ();
	index = 0;

	for (i in document.forms[formName].elements) {
		var chk = document.forms[formName].elements[i];
		if (chk.type == "checkbox") {
			if ((chk.id != "check_all") && (chk.name == "file_id") && (chk.checked)) {
				fileIds [index] = chk.value;
				index++;
			}
		}
	}

	if (fileIds.length == 0) {
		alert ("Please select at least one file");
		return;
	}

	xajax_triggerAction ("old_files_download", fileIds);
}

function deleteOldVideos () {
	var formName = "form_results";

	var fileIds = new Array ();
	index = 0;

	for (i in document.forms[formName].elements) {
		var chk = document.forms[formName].elements[i];
		if (chk.type == "checkbox") {
			if ((chk.id != "check_all") && (chk.name == "file_id") && (chk.checked)) {
				fileIds [index] = chk.value;
				index++;
			}
		}
	}

	if (fileIds.length == 0) {
		alert ("Please select at least one file");
		return;
	}

	if (!confirm ("Are you sure you want to delete these files?"))
		return;

	xajax_triggerAction ("delete_old_videos", fileIds);
}

function actionDeleteFiles (formName) {
	var fileIds = new Array ();
	index = 0;

	var frm = document.forms[formName];

	var boxes = document.forms[formName].file_id;

	for (i = 0; i < boxes.length; i++) {
		var chk = boxes[i];
		if ((chk.id != "check_all") && (chk.name == "file_id") && (chk.checked)) {
			fileIds [index] = chk.value;
			index++;
		}
	}

	if (fileIds.length == 0) {
		alert ("You have not selected any file(s)");
	} else {
		if (confirm ("Are you sure you want to delete selected files?") && confirm ("Are you really sure you want to delete selected files?")) {
			xajax_triggerAction ("delete_files", fileIds);
		}
	}
}

function actionNavPage (action, page) {
	xajax_triggerAction (action, page);
}

function actionConfig () {
	xajax_triggerAction ("configuration");
}

function actionConfigCC () {
	marketData = new Array ();

	for (i in document.forms["configCCFrm"].elements) {
		var chk = document.forms["configCCFrm"].elements[i];

		if (chk) {
			if (chk.type == "textarea") {
				marketData[chk.id] = chk.value;
			}
		}
	}

	xajax_triggerAction ("configuration", "cc", "go", marketData);
}

function previewSpot (fileId, fileWidth, fileHeight) {
	openPreviewPopup (fileId, fileWidth, fileHeight);
	// xajax_triggerAction ("preview_spot", fileId, screen.width, screen.height);
}

function manageOldVideos () {
	xajax_triggerAction ("manage_old_videos");
}

function oldVideosCont (page, orderBy) {
	xajax_triggerAction ("manage_old_videos_cont", page, orderBy);
}

function oldVideosStart () {
	xajax_triggerAction ("manage_old_videos_start", getT ("search_keyword"));
}

function hidePreview () {
	document.getElementById ("preview_spot").innerHTML = "";
}

function actReload () {
	xajax_triggerAction ("reload");
}

function actBack () {
	xajax_triggerAction ("back");
}

function checkDestFolder (elId) {
	folder = getS (elId);

	if (folder == "") {
		alert ("Please choose the destination folder");
		return false;
	}

	return true;
}

function actCopyFile (fileId) {
	if (!checkDestFolder ('dest_folder'))
		return;

	xajax_triggerAction ("copy_file", fileId, getS('dest_folder'));
}

function actMoveFile (fileId) {
	if (!checkDestFolder ('dest_folder'))
		return;

	xajax_triggerAction ("move_file", fileId, getS('dest_folder'));
}

function copyFileMessage () {
	alert ("The file has been successfully copied.");
}

function changeMarket (newMarket) {
	newMarket = newMarket.replace ("/\S/", "");
	newMarket = newMarket.toLowerCase ();

	if (newMarket == "") {
		newMarket = "generic";
	}

	document.getElementById ("market_top_image").src = "market_images/top_" + newMarket + ".gif";
	document.getElementById ("market_bottom_image").src = "market_images/bottom_" + newMarket + ".gif";
}

function fix_ie () {
	return;

	objects = document.getElementsByTagName("object");
	for (var i = 0; i < objects.length; i++) {
		objects[i].outerHTML = objects[i].outerHTML;
	}
}

function addFlashOrg (sizeX, sizeY, file) {
	var obj = document.getElementById ("FlowPlayer");

	newSizeY = 16 + parseInt (sizeY);

	newHTML = '<object type="application/x-shockwave-flash" data="FlowPlayerThermo.swf" width="' + sizeX + '" height="' + newSizeY + '" id=' + '"FlowPlayerObj"' + '>';
	newHTML += '<param name="allowScriptAccess" value="always" />';
	newHTML += '<param name="movie" value="FlowPlayerThermo.swf" />';
	newHTML += '<param name="quality" value="high" />';
	newHTML += '<param name="scaleMode" value="showAll" />';
	newHTML += '<param name="allowfullscreen" value="true" />';
	newHTML += '<param name="wmode" value="transparent" />';
	newHTML += '<param name="allowNetworking" value="all" />';
	newHTML += '<param name="flashvars" value="config={autoPlay: true, loop: false, initialScale:' +  "'scale'" + ', showLoopButton: false, showPlayListButtons: false, menuItems: [ true, true, true, true, false, false ], videoFile: ' + "'" + file + "'" + '}" />';
	newHTML += '</object>';

	obj.innerHTML = newHTML;
}

function addFlash (sizeX, sizeY, file) {
	var s1 = new SWFObject("flvplayer.swf","single",sizeX,parseInt(sizeY)+20,"7");
	s1.addParam("allowfullscreen","false");
	s1.addVariable("file",file);
	s1.addVariable("autostart",true);
	s1.write("FlowPlayer");
}

function saveMenuPos () {
	// xajax_triggerAction ("save_menu_pos", document.getElementById ("admin_menu").scrollTop);
	menuTopPos = document.getElementById ("admin_menu").scrollTop;
}

function restoreMenuPos (pos) {
	scrollDiv ("admin_menu", menuTopPos);
}

function setMenuPos (pos) {
	scrollDiv ("admin_menu", 300);
}

function scrollDiv(elId, newPos) {
	var el;

	if (document.getElementById && (el=document.getElementById(elId)) && ('undefined' != typeof el.scrollTop)) {
		el.scrollTop = 0;
		el.scrollTop = newPos;
	}
}

function openPreviewPopup (fileId, fileWidth, fileHeight) {
	var w = 1280, h = 1024;

	if (document.all || document.layers) {
		w = screen.availWidth;
		h = screen.availHeight;
	}

	winTop = (h-fileHeight)/2 - 30;
	winLeft = (w-fileWidth)/2;

	popupWin = window.open ("preview.php?file_id="+fileId, "preview_file", "width=" + fileWidth + ",height=" + (16+fileHeight) + ",top=" + winTop + ",left=" + winLeft + ",toolbar=no,status=no,scrollbars=yes,resizable=yes,menubar=no,location=no,direction=no");
}

function action(actionName) {
	xajax_triggerAction (actionName);
}

function submitAjax(action, frmId) {
	var obj, formParams;
	
	formParams = xajax.getFormValues(frmId);
	
	xajax_triggerAction (action, formParams);
}

function deleteBanner() {
	if (confirm("Are you sure?")) {
		xajax_triggerAction ("delete_banner", $('#current_banner_id').val());
	}
}
function switchSpotBanner(type) {
	var spotBannerType = $('#spot_banner_type_'+type).val();

	if (spotBannerType == -1) {
		$('.row_own_banner_'+type).show();
	} else {
		$('.row_own_banner_'+type).hide();
	}
}
function updateFileBanner(fileId) {
	xajax_triggerAction('update_file_banner', fileId, $('#spot_banner_type_s').val(), $('#new_banner_file_id_s').val(), $('#spot_banner_type_q').val(), $('#new_banner_file_id_q').val(), $('#file_width_s').val(), $('#file_height_s').val(), $('#file_width_q').val(), $('#file_height_q').val());
}
function showFileBanner(type, fileId) {
	$.get(
		'uploader.php?action=show_image&image_id='+fileId,
		function (data) {
			$('#spot_banner_'+type).html(data);

			// Resize flash
			// resizeFlash ('uploaded_movie_'+fileId);
		},
		'html'
	);
}
function getFlashObj(movie){
	if (window.document[movie]) {
		return window.document[movie];
	}
	if (navigator.appName.indexOf("Microsoft Internet")==-1) {
		if (document.embeds && document.embeds[movie]) {
			return document.embeds[movie]; 
		}
	} else {
		return document.getElementById(movie);
	}
}

function resizeFlash(movieId) {
	var theFlash = getFlashObj(movieId);

	// alert (parseInt(theFlash.TGetProperty('/',8)));
	// alert (parseInt(theFlash.TGetProperty('/',9)));

	theFlash.width = parseInt(theFlash.TGetProperty('/',8)) + "px";
	theFlash.height = parseInt(theFlash.TGetProperty('/',9)) + "px";
}
