
// ***** the POST VIDEO dialog *****

var iPostDlg_ThisPage=1;

function PostDlg_Render()
{
	// expose pages
	var pnPage1=GetObj("page1"),
		pnPage2=GetObj("page2"),
		pnPage3=GetObj("page3"),
		pnPage4=GetObj("page4");
	Visible(pnPage1,(iPostDlg_ThisPage==1));
	Visible(pnPage2,(iPostDlg_ThisPage==2));
	Visible(pnPage3,(iPostDlg_ThisPage==3));
	Visible(pnPage4,(iPostDlg_ThisPage==4));

	// draw caption and set initial focus 
	var sPageMsg;
	switch(iPostDlg_ThisPage) {
		case 1: sPageMsg="essential details"; GetObj("txt_title").focus(); break;
		case 2: sPageMsg="publisher and classification"; GetObj("lbx_publisher").focus(); break;
		case 3: sPageMsg="optional information"; GetObj("txt_talent").focus(); break;
		default: sPageMsg="your details"; GetObj("txt_yourname").focus(); break;
	}
	GetObj("pageMsg").innerHTML=sPageMsg;

	// draw command buttons
	GetObj("btnNext").value= (iPostDlg_ThisPage==4?"finish":"next >");
	GetObj("btnPrev").disabled= (iPostDlg_ThisPage==1);

	// centre dialog in window
	var pnDialog=GetObj("frmPostFrm");
	var iClientX,iClientY;
	if(parseInt(navigator.appVersion)>3) {
		if(navigator.appName=="Netscape") {
			iClientX=window.innerWidth;
			iClientY=window.innerHeight;
		}
		else if(navigator.appName.indexOf("Microsoft")!=-1) {
			iClientX=document.documentElement.clientWidth;
			iClientY=document.documentElement.clientHeight;
			if(iClientX==0) {
				iClientX=document.body.clientWidth;
				iClientY=document.body.clientHeight;
			}
		}
	}
	pnDialog.style.left=parseInt((iClientX-pnDialog.offsetWidth)/2)+"px";
	pnDialog.style.top=parseInt((iClientY-pnDialog.offsetHeight)/2)+"px";
}
function PostDlg_ValidateMsg(asMsg) {
	var pnValidate=GetObj("pnValidateMsg");
	pnValidate.innerHTML=asMsg;
	Visible(pnValidate,true);
}
function PostDlg_RequiredFld(asFieldId,asFieldName) {
	if(GetObj(asFieldId).value=="") {
		PostDlg_ValidateMsg("Please complete the "+asFieldName+" field:");
		return false;
	}
	return true;
}

function PostDlg_ValidatePage1() {
	// empty tests
	if(!PostDlg_RequiredFld("txt_title","TITLE"))return false;
	if(!PostDlg_RequiredFld("txt_indexurl","MOVIE URL"))return false;
	if(!PostDlg_RequiredFld("txt_shortdesc","SHORT DESCRIPTION"))return false;
	if(!PostDlg_RequiredFld("txt_duration","DURATION"))return false;
	if(!PostDlg_RequiredFld("txt_movie_date","PUBLISHED DATE"))return false;
	
	// duration: spin through all characters, count digits between colons
	var sDurationErrMsg="Invalid duration. Please use [H]H:MM:SS.";
	var sDuration=GetObj("txt_duration").value;
	var iThisChar=0,iNumDigit=0;
	while(iThisChar<sDuration.length) {
		var thisChar=sDuration.substr(iThisChar,1);
		if(thisChar==":"&&iNumDigit>0)iNumDigit=0;
		else if(IsDigit(thisChar))++iNumDigit;
		else {
			PostDlg_ValidateMsg(sDurationErrMsg);
			return false;
		}
		if(iNumDigit==3) {
			PostDlg_ValidateMsg(sDurationErrMsg);
			return false;
		}
		++iThisChar;
	}
	if(sDuration.length<4) {
		PostDlg_ValidateMsg(sDurationErrMsg);
		return false;
	}
	
	// publication date
	var sDate=GetObj("txt_movie_date").value;
	if( !(IsDigit(sDate.substr(0,1))&&IsDigit(sDate.substr(1,1))&&
				IsDigit(sDate.substr(2,1))&&IsDigit(sDate.substr(3,1))&&
		IsDigit(sDate.substr(5,1))&&IsDigit(sDate.substr(6,1))&&
		IsDigit(sDate.substr(8,1))&&IsDigit(sDate.substr(9,1))&&
		sDate.substr(4,1)=="-"&&
		sDate.substr(7,1)=="-")) {
			PostDlg_ValidateMsg("Invalid date. Please enter as YYYY-MM-DD.");
			return false;
	}

	return true;
}


/* SUMMARY: boolean button has a radio button been selected?
* [aryRadios]: array of string radio button IDs
* <retval>: boolen selected */
function Validate_Radio_Checked(aryRadios) {
	var iThisBtn;
	for(iThisBtn=0;iThisBtn<aryRadios.length;++iThisBtn) {
		if(GetObj(aryRadios[iThisBtn]).checked)return true;
	}
	return false;
}


function PostDlg_ValidatePage2() {
	if(GetObj("lbx_publisher").value==""&&GetObj("txt_publisher2").value=="") {
		PostDlg_ValidateMsg("Please enter a PUBLISHER or select one from the list:");
		return false;
	}
	
	if(!PostDlg_RequiredFld("lbx_rating","RATING"))return false;
	if(!PostDlg_RequiredFld("lbx_nature","CLASSIFICATION"))return false;
	if(!PostDlg_RequiredFld("txt_tags","TAGS"))return false;

	if(!Validate_Radio_Checked(new Array("rx_level_1","rx_level_2","rx_level_3")) ) {
		PostDlg_ValidateMsg("Please complete the AUDIENCE field:");
		return false;
	}

	return true;
}

function PostDlg_Validate() {
	var bSuccess=true;
	switch(iPostDlg_ThisPage) {
		case 1: bSuccess=PostDlg_ValidatePage1(); break;
		case 2: bSuccess=PostDlg_ValidatePage2(); break;
	}
	return bSuccess;
}
function PostDlg_Page(abNext) {
	if(!PostDlg_Validate())return;
	else Visible(GetObj("pnValidateMsg"),false);
	if(abNext)++iPostDlg_ThisPage;
	else --iPostDlg_ThisPage;
	if(iPostDlg_ThisPage==5)GetObj("frmPost").submit();
	else PostDlg_Render();
}
function PostDlg_Hide() {
	iPostDlg_ThisPage=1;
	Visible(GetObj("pnValidateMsg"),false);
	Visible(GetObj("frmPostFrm"),false);
	Visible(GetObj("pnOverlay"),false);
	window.onresize=null;
}
/* SUMMARY: is parameter char a digit
* [asChar]: string character
* <retval>: boolean isdigit */
function IsDigit(asChar) {
	var iCharCode=asChar.charCodeAt(0);
	return iCharCode>="0".charCodeAt(0)&&iCharCode<="9".charCodeAt(0);
}
function PostDlg_Show() {
	iPostDlg_ThisPage=1;
	Visible(GetObj("pnOverlay"),true);
	Visible(GetObj("frmPostFrm"),true);
	window.onresize=function() { PostDlg_Render(); };
	PostDlg_Render();
}

