// -----------------------------------------------------------------------------
// Globals
// Major version of Flash required
var requiredMajorVersion = 9;
// Minor version of Flash required
var requiredMinorVersion = 0;
// Minor version of Flash required
var requiredRevision = 124;
// -----------------------------------------------------------------------------
var isIE  = (navigator.appVersion.indexOf("MSIE") != -1) ? true : false;
var isWin = (navigator.appVersion.toLowerCase().indexOf("win") != -1) ? true : false;
var isOpera = (navigator.userAgent.indexOf("Opera") != -1) ? true : false;

browser_name = navigator.appName;
browser_version = parseFloat(navigator.appVersion); 
if (browser_name == "Netscape" && browser_version >= 3.0) { roll = 'true'; }
else if (browser_name == "Microsoft Internet Explorer" && browser_version >= 3.0) { roll = 'true'; }
else { roll = 'false'; }
function msover1(img,ref) { if (roll == 'true') { document.images[img].src = ref; } }
function msout1(img,ref)  { if (roll == 'true') { document.images[img].src = ref; } }




function findPos(obj) {
	var curleft = curtop = 0;
	if (obj.offsetParent) {
		curleft = obj.offsetLeft
		curtop = obj.offsetTop
		while (obj = obj.offsetParent) {
			curleft += obj.offsetLeft
			curtop += obj.offsetTop
		}
	}
	return [curleft,curtop];
}


function confirmThenGo(message,link) {
var confirmed = confirm(message);

if (confirmed)
parent.location = link;
else
return false;
}



function changeNotificationStatus(id,new_status) {

if (new_status == 1)
var notification = "<input type=checkbox value=1 checked onclick=\"changeNotificationStatus('"+id+"',0); return false;\"> <font color=green><b>ON</b></font>";
else
var notification = "<input type=checkbox value=1 onclick=\"changeNotificationStatus('"+id+"',1); return false;\"> <font color=red><b>OFF</b></font>";

document.getElementById("notify"+id).innerHTML = notification;

var pars = "id="+id+"&new_status="+new_status+"&remote_func=changeNotificationStatus";
var url = "/online2/YJ5.AJAXfunctions.php";
new Ajax.Request(url,{method:'post',parameters:pars});

}


function openSearchDiv(div) {

var divs = new Array('dictionary','lessons','pages','questions','videos','answers','grammar');

for(i=0;i<divs.length;i++)
{
	if (divs[i] == div)
	{
	document.getElementById(divs[i]).style.display = 'block';
	document.getElementById(divs[i]+"_link").style.height = '20px';
	document.getElementById(divs[i]+"_link").style.top = '45px';
	}
	else
	{
	document.getElementById(divs[i]).style.display = 'none';
	document.getElementById(divs[i]+"_link").style.height = '15px';
	document.getElementById(divs[i]+"_link").style.top = '50px';
	}
}
}



function updateQuestionHandler(id,handler) {
var pars = "id="+id+"&handler="+handler+"&remote_func=updateQuestionHandler";
var url = "/online2/YJ5.AJAXfunctions.php";
// new Ajax.Request(url,{method:'post',parameters:pars});
new Ajax.Updater('process', url,{evalScripts:true, method:'get',parameters:pars});
}


function ControlVersion()
{
	var version;
	var axo;
	var e;

	// NOTE : new ActiveXObject(strFoo) throws an exception if strFoo isn't in the registry

	try {
		// version will be set for 7.X or greater players
		axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash.7");
		version = axo.GetVariable("$version");
	} catch (e) {
	}

	if (!version)
	{
		try {
			// version will be set for 6.X players only
			axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash.6");
			
			// installed player is some revision of 6.0
			// GetVariable("$version") crashes for versions 6.0.22 through 6.0.29,
			// so we have to be careful. 
			
			// default to the first public version
			version = "WIN 6,0,21,0";

			// throws if AllowScripAccess does not exist (introduced in 6.0r47)		
			axo.AllowScriptAccess = "always";

			// safe to call for 6.0r47 or greater
			version = axo.GetVariable("$version");

		} catch (e) {
		}
	}

	if (!version)
	{
		try {
			// version will be set for 4.X or 5.X player
			axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash.3");
			version = axo.GetVariable("$version");
		} catch (e) {
		}
	}

	if (!version)
	{
		try {
			// version will be set for 3.X player
			axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash.3");
			version = "WIN 3,0,18,0";
		} catch (e) {
		}
	}

	if (!version)
	{
		try {
			// version will be set for 2.X player
			axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash");
			version = "WIN 2,0,0,11";
		} catch (e) {
			version = -1;
		}
	}
	
	return version;
}

// JavaScript helper required to detect Flash Player PlugIn version information
function GetSwfVer(){
	// NS/Opera version >= 3 check for Flash plugin in plugin array
	var flashVer = -1;
	
	if (navigator.plugins != null && navigator.plugins.length > 0) {
		if (navigator.plugins["Shockwave Flash 2.0"] || navigator.plugins["Shockwave Flash"]) {
			var swVer2 = navigator.plugins["Shockwave Flash 2.0"] ? " 2.0" : "";
			var flashDescription = navigator.plugins["Shockwave Flash" + swVer2].description;
			var descArray = flashDescription.split(" ");
			var tempArrayMajor = descArray[2].split(".");			
			var versionMajor = tempArrayMajor[0];
			var versionMinor = tempArrayMajor[1];
			var versionRevision = descArray[3];
			if (versionRevision == "") {
				versionRevision = descArray[4];
			}
			if (versionRevision[0] == "d") {
				versionRevision = versionRevision.substring(1);
			} else if (versionRevision[0] == "r") {
				versionRevision = versionRevision.substring(1);
				if (versionRevision.indexOf("d") > 0) {
					versionRevision = versionRevision.substring(0, versionRevision.indexOf("d"));
				}
			}
			var flashVer = versionMajor + "." + versionMinor + "." + versionRevision;
			// alert("flashVer="+flashVer);
		}
	}
	// MSN/WebTV 2.6 supports Flash 4
	else if (navigator.userAgent.toLowerCase().indexOf("webtv/2.6") != -1) flashVer = 4;
	// WebTV 2.5 supports Flash 3
	else if (navigator.userAgent.toLowerCase().indexOf("webtv/2.5") != -1) flashVer = 3;
	// older WebTV supports Flash 2
	else if (navigator.userAgent.toLowerCase().indexOf("webtv") != -1) flashVer = 2;
	else if ( isIE && isWin && !isOpera ) {
		flashVer = ControlVersion();
	}	
	return flashVer;
}

// When called with reqMajorVer, reqMinorVer, reqRevision returns true if that version or greater is available
function DetectFlashVer(reqMajorVer, reqMinorVer, reqRevision)
{
	versionStr = GetSwfVer();
// alert("FIXING PROBLEMS: " + versionStr);
	if (versionStr == -1 ) {
		return false;
	} else if (versionStr != 0) {
		if(isIE && isWin && !isOpera) {
			// Given "WIN 2,0,0,11"
			tempArray         = versionStr.split(" "); 	// ["WIN", "2,0,0,11"]
			tempString        = tempArray[1];			// "2,0,0,11"
			versionArray      = tempString.split(",");	// ['2', '0', '0', '11']
		} else {
			versionArray      = versionStr.split(".");
		}
		var versionMajor      = versionArray[0];
		var versionMinor      = versionArray[1];
		var versionRevision   = versionArray[2];

        	// is the major.revision >= requested major.revision AND the minor version >= requested minor
	// alert("YourFlash="+versionMinor+" ("+parseFloat(reqMinorVer)+")")

		if (versionMajor > parseFloat(reqMajorVer)) {
			return true;
		} else if (versionMajor == parseFloat(reqMajorVer)) {
			if (versionMinor > parseFloat(reqMinorVer))
				return true;
			else if (versionMinor == parseFloat(reqMinorVer)) {

				if (versionRevision >= parseFloat(reqRevision))
					return true;
			}
		}
		return false;
	}
}

function AC_AddExtension(src, ext)
{
  if (src.indexOf('?') != -1)
    return src.replace(/\?/, ext+'?'); 
  else
    return src + ext;
}

function AC_Generateobj(objAttrs, params, embedAttrs) 
{ 
    var str = '';
    if (isIE && isWin && !isOpera)
    {
  		str += '<object ';
  		for (var i in objAttrs)
  			str += i + '="' + objAttrs[i] + '" ';
  		for (var i in params)
  			str += '><param name="' + i + '" value="' + params[i] + '" /> ';
  		str += '></object>';
    } else {
  		str += '<embed ';
  		for (var i in embedAttrs)
  			str += i + '="' + embedAttrs[i] + '" ';
  		str += '> </embed>';
    }

    document.write(str);
}

function AC_FL_RunContent(){
  var ret = 
    AC_GetArgs
    (  arguments, ".swf", "movie", "clsid:d27cdb6e-ae6d-11cf-96b8-444553540000"
     , "application/x-shockwave-flash"
    );
  AC_Generateobj(ret.objAttrs, ret.params, ret.embedAttrs);
}

function AC_GetArgs(args, ext, srcParamName, classid, mimeType){
  var ret = new Object();
  ret.embedAttrs = new Object();
  ret.params = new Object();
  ret.objAttrs = new Object();
  for (var i=0; i < args.length; i=i+2){
    var currArg = args[i].toLowerCase();    

    switch (currArg){	
      case "classid":
        break;
      case "pluginspage":
        ret.embedAttrs[args[i]] = args[i+1];
        break;
      case "src":
      case "movie":	
        args[i+1] = AC_AddExtension(args[i+1], ext);
        ret.embedAttrs["src"] = args[i+1];
        ret.params[srcParamName] = args[i+1];
        break;
      case "onafterupdate":
      case "onbeforeupdate":
      case "onblur":
      case "oncellchange":
      case "onclick":
      case "ondblClick":
      case "ondrag":
      case "ondragend":
      case "ondragenter":
      case "ondragleave":
      case "ondragover":
      case "ondrop":
      case "onfinish":
      case "onfocus":
      case "onhelp":
      case "onmousedown":
      case "onmouseup":
      case "onmouseover":
      case "onmousemove":
      case "onmouseout":
      case "onkeypress":
      case "onkeydown":
      case "onkeyup":
      case "onload":
      case "onlosecapture":
      case "onpropertychange":
      case "onreadystatechange":
      case "onrowsdelete":
      case "onrowenter":
      case "onrowexit":
      case "onrowsinserted":
      case "onstart":
      case "onscroll":
      case "onbeforeeditfocus":
      case "onactivate":
      case "onbeforedeactivate":
      case "ondeactivate":
      case "type":
      case "codebase":
        ret.objAttrs[args[i]] = args[i+1];
        break;
      case "id":
      case "width":
      case "height":
      case "align":
      case "vspace": 
      case "hspace":
      case "class":
      case "title":
      case "accesskey":
      case "name":
      case "tabindex":
        ret.embedAttrs[args[i]] = ret.objAttrs[args[i]] = args[i+1];
        break;
      default:
        ret.embedAttrs[args[i]] = ret.params[args[i]] = args[i+1];
    }
  }
  ret.objAttrs["classid"] = classid;
  if (mimeType) ret.embedAttrs["type"] = mimeType;
  return ret;
}





// sound related functions


function replaceSushis(sushi) {
var lightup = sushi;
var output = '';

	while(lightup) {
	output += "<img src=/online/sushi.gif style=\"width:15px;height:19px;border:0;\">";
	lightup--;
	}

	while(++sushi <= 5) {
	output += "<img src=/online/sushi-blank.gif style=\"width:15px;height:19px;border:0;\">";
	}

document.getElementById("allsushis").innerHTML = output;
}

function sushiRankDisplay(sushi) {
var lightup = sushi;
	while(lightup) {
	document.getElementById("sushi"+lightup).src = "/online/sushi.gif";
	lightup--;
	}

	while(++sushi <= 5) {
	document.getElementById("sushi"+sushi).src = "/online/sushi-blank.gif";
	}
}

function sushiRankHover(sushi,voted) {
if (voted)
	document.getElementById("voteline").innerHTML = "You already voted";
	else
	{
		switch(sushi) {
		case 5:
		document.getElementById("voteline").innerHTML = "さいこう！";
		break;

		case 4:
		document.getElementById("voteline").innerHTML = "おもしろい";
		break;

		case 3:
		document.getElementById("voteline").innerHTML = "みてよかった";
		break;

		case 2:
		document.getElementById("voteline").innerHTML = "おもしろくない";
		break;

		case 1:
		document.getElementById("voteline").innerHTML = "ひどい";
		break;
		}
	}
}



function textCounter(countthis,cntfield,maxlimit) {
var display = document.getElementById(cntfield);
var field = document.getElementById(countthis);

if (field.value.length > maxlimit) // if too long...trim it!
field.value = field.value.substring(0, maxlimit);
// otherwise, update 'characters left' counter
else
display.innerHTML = maxlimit - field.value.length;
}



function deleteVote(media_id) {
var deleteok = confirm("Your vote will be deleted first. Is this okay?");
if (deleteok)
window.open("/online/pages/YJ5.editVote.php?var3="+media_id+"","revote","menubar=no,width=350,height=220,toolbar=no");
else
return false;
}

function recordSushiVote(media_id,sushis) {
if (!sushis)
alert ("You must choose a rank.");
else
{

window.open("/online/pages/YJ5.recordSushiVote.php?page=recordvote&var1="+media_id+"&var2="+sushis,"sushivote","menubar=no,width=350,height=220,toolbar=no");
}

}

function recordSushiVoteOLD(media_id,user_id,sushis) {
var comments=prompt("Vote Comments (optional)","");
comments = ued_encode(comments);

if (!sushis)
alert ("You must choose a rank.");
else
{
//alert (media_id + " ----> " + user_id + " ----> " + sushis + " ----> " + comments);
var pars = "page=recordvote&var1="+media_id+"&var2="+sushis+"&var3="+comments+"&var4="+user_id;
var url = "/online/pages/YJ5.recordSushiVote.php";

new Ajax.Updater('voteline', url,{evalScripts:true, method:'get',parameters:pars});
}

}


function sushiRankMouseout(media_id,total_votes) {
var rankings = (total_votes == 1) ? total_votes + " ranking" : total_votes + " rankings";

document.getElementById("voteline").innerHTML = "<a href=\"/online/pages/index.php?page=allvotes&var3="+media_id+"\">"+rankings+"</a>";
}


function openEasyFunctions()
{
var url = "/online/pages/YJ5.easyFunctionsMenu.php";
document.getElementById("menus").style.display = "none";
document.getElementById("easyfunctions").style.display = "block";
new Ajax.Updater('easyfunctions', url,{evalScripts:true, method:'post'});
}


function reloadVideo(media_id) {
document.getElementById("streaming_video").innerHTML = "<br><img src =/online/pages/images/progress_bar.gif width=190 height=14 border=0><br>loading...";
var params = "var1="+media_id;
var url = "/online/pages/YJ6.loadVideoArea.php";
document.getElementById("box_title").innerHTML = document.getElementById("prior_box_title").innerHTML;
new Ajax.Updater('streaming_video',url,{evalScripts:true,method: 'post', parameters: params});
}

function reloadDownloadIcons(media_id) {
var params = "var1="+media_id;
var url = "/online/pages/YJ6.loadDownloadIcons.php";
new Ajax.Updater('download_icons',url,{evalScripts:true,method: 'post', parameters: params});
}


function reloadVideoAndFavorites(media_id) {
document.getElementById("streaming_video").innerHTML = "<br><img src =/online/pages/images/progress_bar.gif width=190 height=14 border=0><br>loading...";
document.getElementById("favorite_box").innerHTML = "<br><img src =/online/pages/images/progress_bar.gif width=190 height=14 border=0><br>loading...";

var params = "var1="+media_id;
var url = "/online/pages/YJ6.loadVideoArea.php";
document.getElementById("box_title").innerHTML = document.getElementById("prior_box_title").innerHTML;
new Ajax.Updater('streaming_video',url,{evalScripts:true,method: 'post', parameters: params});

setTimeout("var dog=1",3000);
new Ajax.Updater('favorite_box','/online/pages/YJ6.loadFavoriteArea.php',{evalScripts:true,method: 'post', parameters: params});
}



function openEasyFunctionPopUp(thediv)
{
// createPlayer();

if (document.getElementById("nowopen") == null)
{
var theBody = document.getElementsByTagName('body')[0];
var data2 = document.createElement("DIV");
data2.innerHTML = "<div id=\"nowopen\" style=\"display:none;\"></div>";
document.body.appendChild(data2);
}

var lastdiv = document.getElementById("nowopen").innerHTML;

document.getElementById("nowopen").innerHTML = thediv;
var thedivop = "op" + thediv;
var thedivsp = "sp" + thediv;
var lastdiv = 'op' + lastdiv;
var movediv = 'move' + lastdiv;
var lastParentDiv = document.getElementById('sp' + lastdiv);
var current = document.getElementById(thedivop).innerHTML;

var url = "/online2/YJ5.easyFunctionPopUp.php";

	if (current)
	document.getElementById(thedivop).innerHTML = "";
	else
	{
	document.getElementById(thedivop).innerHTML = "<img src =/online/pages/images/sound-loader.gif width=43 height=11 border=0>";
		if (lastdiv && lastParentDiv)
		{
		lastParentDiv.innerHTML = "<div style=position:absolute;z-index:1000; id=\""+movediv+"\></div>";
		new Draggable(movediv);
		}
	var params = 'thediv=' + thediv;
	var ajax = new Ajax.Updater(thedivop,url,{method: 'post', parameters: params});
	}
}


function showMenus()
{
document.getElementById("menus").style.display = "block";
document.getElementById("easyfunctions").style.display = "none";
}



function changeLessonLinkHighlight(linkCourse,linkLess,clicked) {
parent.frames["navi-url"].document.getElementById("course").innerHTML = linkCourse;
parent.frames["navi-url"].document.getElementById("less").innerHTML = linkLess;
parent.frames["navi-url"].document.getElementById("area").innerHTML = clicked;
displayPageNavigation();

var loadedLinks = parent.frames["menu-url"].document.getElementById("loadedLinks").innerHTML;

var links = loadedLinks.split(",");

	for (i=0;i<links.length;i++)
	{
	var thelink = links[i];
		if (thelink)
		{
			if (clicked == thelink)
			{
			parent.frames["menu-url"].document.getElementById(thelink).style.background = "url(/online/pages/images/course"+linkCourse+"box_midS.png)";
			}
			else
			parent.frames["menu-url"].document.getElementById(thelink).style.background = "";
		}
	}

var pars = "course="+linkCourse+"&less="+linkLess+"&area="+clicked+"&remote_func=updateBookmark";
var url = "/online2/YJ5.AJAXfunctions.php";
new Ajax.Request(url,{method:'post',parameters:pars});

} // end of function: changeLessonLinkHighlight


function pausePlaying(arr,playbutton) {
document.getElementById(playbutton).innerHTML = "<a href=# onclick=\"playSoundList('"+arr+"','"+playbutton+"'); return false;\"><img src=/online/pages/images/play.png width=138 height=35 border=0 alt=\"Play All\"></a>";
thisMovie("flash_player2").silenceSounds();
}


function start_featureX() {
var media_id = document.getElementById("media_id").value;
thisMovie("player1").sendVars(media_id);
}


function start_feature() {
var media_id = document.getElementById("media_id").value;
alert("flash called javascript no problem: media id = " + media_id);
thisMovie("player1").sendVars(media_id);
}

function load_new_video(media_id) {
alert("sendVars called from index.php onLoad(): media id = " + media_id);
thisMovie("player1").sendVars(media_id);
}


function resetSoundButton(arr,playbutton) {
document.getElementById(playbutton).innerHTML = "<a href=# onclick=\"playSoundList('"+arr+"','"+playbutton+"'); return false;\"><img src=/online/pages/images/play.png width=138 height=35 border=0 alt=\"Play All\"></a>";
thisMovie("flash_player2").clearAllSounds();
}


function playSound(str)
{
var playbutton = '';
// old name = makeLoadCall
// createPlayer();
thisMovie("flash_player").loadSound(str,playbutton);
}


function playSoundList(arr,playbutton) {
// old makeArrayCall
thisMovie("flash_player2").clearAllSounds();
document.getElementById(playbutton).innerHTML = "<a href=# onclick=\"pausePlaying('"+arr+"','"+playbutton+"'); return false;\"><img src=/online/pages/images/pause.png width=138 height=35 border=0 alt=\"Pause\"></a>";

	var sounds = arr.split(',');
     thisMovie("flash_player2").loadSoundArray(sounds,playbutton);
}

function stopPlaying(arr,playbutton) {
thisMovie("flash_player2").silenceSounds();
thisMovie("flash_player2").clearAllSounds();
document.getElementById(playbutton).innerHTML = "<a href=# onclick=\"playSoundList('"+arr+"','"+playbutton+"'); return false;\"><img src=/online/pages/images/play.png width=138 height=35 border=0 alt=\"Play All\"></a>";
}

function makeCall(str)
  {
     thisMovie("flash_player").silenceSounds(str);
  }

function makeClearCall(str)
  {
     thisMovie("flash_player").clearAllSounds(str);
  }


function makeAddCall(str)
  {
     thisMovie("flash_player").addSound(str);
  }


function makePlayCall(str)
  {
     thisMovie("flash_player").playSound(str);
  }


function makeIntervalCall(str)
  {
     thisMovie("flash_player").setPauseInterval(str);
  }

function createPlayer() {

if (document.getElementById("flashPlayer") == null)
{
var flashPlayer = document.createElement("DIV");
flashPlayer.innerHTML = '<div id="flashPlayer" style=\"height:1px;width:1px;\"><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=8,0,0,0" id="flash_player" align="middle" height="1" width="1"> <param name="allowScriptAccess" value="always"><param name="movie" value="/online2/!MP3playSpeaker4.swf"><param name="quality" value="high"><param name="scale" value="exactfit"><param name="wmode" value="transparent"><param name="bgcolor" value="#ffffff"><embed src="/online2/!MP3playSpeaker4.swf" quality="high" scale="exactfit" wmode="transparent" bgcolor="#ffffff" name="flash_player" allowscriptaccess="always" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" align="middle" height="1" width="1"> </object></div>';

document.body.appendChild(flashPlayer);

}
}


function playSoundListX(arr)
{
var sounds = arr.split(',');

for(var i = 0; i < sounds.length; i++)
{
thisMovie("flash_player").loadSound(sounds[i]);
}

}



function playSound_ORIGINAL(surl) {
// alert("Sound Url - " + surl);

if (document.getElementById("soundPlayer") == null)
{
var player = document.createElement("DIV");
player.innerHTML = "<div id=\"soundPlayer\" style=\"display:inline;\">HERE IS THE PLAYER</div>";
document.body.appendChild(player);
}
document.getElementById("soundPlayer").innerHTML="<embed src='"+surl+"' hidden=true autostart=true loop=false>";
}

function makeSimpleLoadCall(str)
  {
     thisMovie("flash_player").loadSimpleSound(str);
  }


function makeLoadXMLCall(str)
  {
     thisMovie("flash_player").loadSoundXML(str);
  }


function thisMovie(movieName) {
    if (navigator.appName.indexOf("Microsoft") != -1) {
        return window[movieName]
    }
    else {
        return document[movieName]
    }
}


function availNotice(resp) {

if (resp.responseText != 'GOOD')
{
scroll(0,0);
alert(resp.responseText);
return false;
}
else
{
submitFormValues('plan_creator')
// $('submissionForm').onsubmit='';
// $('submissionForm').submit();
}
}


function callFailed(resp)
{
  alert("Call failed: " + resp.responseText);

}

function checkPlanFormInput() {
  var edit_current = document.getElementById("edit_current").value;
  var plan_name = document.getElementById("plan_name").value;
  var plan_display_name = document.getElementById("plan_display_name").value;
  var plan_description = document.getElementById("plan_description").value;
  var plan_months = document.getElementById("plan_months").value;
  var plan_days = document.getElementById("plan_days").value;
  var promo_first_day = document.getElementById("promo_first_day").value;
  var promo_last_day = document.getElementById("promo_last_day").value;
  
  if (!plan_name || !plan_display_name || (!plan_months && !plan_days))
  {
    alert("Please complete all fields.");
    return false;
  }
/*
	if (un.length < 3 || un.length > 25)
	{
	    alert("Username must be between 3 and 25 characters.");
	    return false;
	}
*/

var matchexp = "[^a-zA-Z0-9_- ]";

if (plan_name.match(matchexp))
  {
    alert("Plan name can only contain roman letters, numbers, spaces, underlines and hyphens.");
    return false;
  }

if (!promo_first_day.match('(19|20)[0-9]{2}[- /.](0[1-9]|1[012])[- /.](0[1-9]|[12][0-9]|3[01])') && promo_first_day != '0000-00-00')  {
    alert("First Day Available must be in 0000-00-00 format.");
    return false;
  }

if (!promo_last_day.match('(19|20)[0-9]{2}[- /.](0[1-9]|1[012])[- /.](0[1-9]|[12][0-9]|3[01])') && promo_last_day != '0000-00-00')  {
    alert("Last Day Available must be in 0000-00-00 format.");
    return false;
  }

checked = 0;
if (edit_current)
submitFormValues('plan_creator')
else
{
  var pars = "plan_name="+plan_name+"&plan_display_name="+plan_display_name;
  var url = "/learn-japanese/YJ5.checkPlanName.php";
new Ajax.Request(url, {method:'post',parameters:pars,onComplete:availNotice, onFailure:callFailed});
}
}


function popUp(URL) {
day = new Date();
id = day.getTime();
eval("page" + id + " = window.open(URL, '" + id + "', 'toolbar=0,scrollbars=0,location=0,statusbar=0,menubar=0,resizable=1,width=400,height=150,left = 440,top = 437');");
}


function opSoundDEMO(soundDiv,popvers,action) {
if (document.getElementById("course")) {
var course = document.getElementById("course").innerHTML
var less = document.getElementById("less").innerHTML
var section = document.getElementById("area").innerHTML
}

var sdata = soundDiv.split('_');
var id = sdata[0];

if (document.getElementById("sound_data") == null)
{
var theBody = document.getElementsByTagName('body')[0];
var data = document.createElement("DIV");
data.innerHTML = "<div id=\"sound_data\" style=\"display:none;\"></div>";
document.body.appendChild(data);
}

if (document.getElementById("nowopen") == null)
{
var theBody = document.getElementsByTagName('body')[0];
var data2 = document.createElement("DIV");
data2.innerHTML = "<div id=\"nowopen\" style=\"display:none;\"></div>";
document.body.appendChild(data2);
}

var url = '/online2/YJ5.soundPopUpDEMO.php';
var params = 'soundDiv=' + soundDiv + '&course=' + course + '&less=' + less + '&section=' + section + '&popvers=' + popvers + '&action=' + action;
var lastsound = document.getElementById("sound_data").innerHTML;

document.getElementById("sound_data").innerHTML = soundDiv;
var thediv = "op" + soundDiv;
var thedivSP = "sp" + soundDiv;
var lastdiv = 'op' + lastsound;
var movediv = 'move' + lastsound;
var lastParentDiv = document.getElementById('sp' + lastsound);
var current = document.getElementById(thediv).innerHTML;

	if (current && !action)
	document.getElementById(thediv).innerHTML = "";
	else
	{
	document.getElementById(thediv).innerHTML = "<img src =/online/pages/images/sound-loader.gif width=43 height=11 border=0>";
		if (lastsound && lastParentDiv)
		{
		lastParentDiv.innerHTML = "<table cellpadding=0 cellspacing=0 border=0 style=position:absolute;z-index:1000; id=\""+movediv+"\"><tr><td id=\""+lastdiv+"\"></td></tr></table>";
		new Draggable(movediv);
		}
	var ajax = new Ajax.Updater(thediv,url,{method: 'post', parameters: params});
	}

} // end of function: opSoundDEMO (openSound)


function reloadNotebook(category) {

var fullurl = window.location + "";
var theurl = fullurl.split("?");

window.location = theurl[0] + "?page=notebook&var4=" + category;

}



function getNoteCategory(afterfunc,soundDiv,popvers,action) {
var params = "afterfunc="+afterfunc+"&soundDiv="+soundDiv+"&popvers="+popvers+"&action="+action+"&remote_func=getNoteCategory";
var url = "/online2/YJ5.AJAXfunctions.php";

document.getElementById('versionChoose').style.display = 'block';
var ajax = new Ajax.Updater('versionChoose',url,{method: 'post', parameters: params});

} // end function getNoteCategory



function opTerm(soundDiv,popvers,action) {
if (document.getElementById("course")) {
var course = document.getElementById("course").innerHTML
var less = document.getElementById("less").innerHTML
var section = document.getElementById("area").innerHTML
}

var sdata = soundDiv.split('_');
var id = sdata[0];

if (document.getElementById("sound_data") == null)
{
var theBody = document.getElementsByTagName('body')[0];
var data = document.createElement("DIV");
data.innerHTML = "<div id=\"sound_data\" style=\"display:none;\"></div>";
document.body.appendChild(data);
}

if (document.getElementById("nowopen") == null)
{
var theBody = document.getElementsByTagName('body')[0];
var data2 = document.createElement("DIV");
data2.innerHTML = "<div id=\"nowopen\" style=\"display:none;\"></div>";
document.body.appendChild(data2);
}

var url = '/online2/YJ5.soundPopUp2.php';
var params = 'soundDiv=' + soundDiv + '&course=' + course + '&less=' + less + '&section=' + section + '&popvers=' + popvers + '&action=' + action + '&term=1';
var lastsound = document.getElementById("sound_data").innerHTML;

document.getElementById("sound_data").innerHTML = soundDiv;
var thediv = "op" + soundDiv;
var thedivSP = "sp" + soundDiv;
var lastdiv = 'op' + lastsound;
var movediv = 'move' + lastsound;
var lastParentDiv = document.getElementById('sp' + lastsound);
var current = document.getElementById(thediv).innerHTML;

	if (current && !action)
	document.getElementById(thediv).innerHTML = "";
	else
	{
	document.getElementById(thediv).innerHTML = "<img src =/online/pages/images/sound-loader.gif width=43 height=11 border=0>";
		if (lastsound && lastParentDiv)
		{
		lastParentDiv.innerHTML = "<table cellpadding=0 cellspacing=0 border=0 style=position:absolute;z-index:1000; id=\""+movediv+"\"><tr><td id=\""+lastdiv+"\"></td></tr></table>";
		new Draggable(movediv);
		}
	var ajax = new Ajax.Updater(thediv,url,{method: 'post', parameters: params});
	}

} // end of function: opTerm (openSound)



function opQuestion(div,qid,action) {
var url = '/online2/YJ5.AJAXfunctions.php';
var params = 'qid=' + qid + '&action=' + action + '&remote_func=opQuestion';
var ajax = new Ajax.Updater(div,url,{method: 'post', parameters: params});
} // end of function: opQuestion


function opSound(soundDiv,popvers,action) {
if (document.getElementById("course")) {
var course = document.getElementById("course").innerHTML
var less = document.getElementById("less").innerHTML
var section = document.getElementById("area").innerHTML
}

var sdata = soundDiv.split('_');
var id = sdata[0];

if (document.getElementById("sound_data") == null)
{
var theBody = document.getElementsByTagName('body')[0];
var data = document.createElement("DIV");
data.innerHTML = "<div id=\"sound_data\" style=\"display:none;\"></div>";
document.body.appendChild(data);
}

if (document.getElementById("nowopen") == null)
{
var theBody = document.getElementsByTagName('body')[0];
var data2 = document.createElement("DIV");
data2.innerHTML = "<div id=\"nowopen\" style=\"display:none;\"></div>";
document.body.appendChild(data2);
}

var url = '/online2/YJ5.soundPopUp2.php';
var params = 'soundDiv=' + soundDiv + '&course=' + course + '&less=' + less + '&section=' + section + '&popvers=' + popvers + '&action=' + action;
var lastsound = document.getElementById("sound_data").innerHTML;

document.getElementById("sound_data").innerHTML = soundDiv;
var thediv = "op" + soundDiv;
var thedivSP = "sp" + soundDiv;
var lastdiv = 'op' + lastsound;
var movediv = 'move' + lastsound;
var lastParentDiv = document.getElementById('sp' + lastsound);
var current = document.getElementById(thediv).innerHTML;

	if (current && !action)
	document.getElementById(thediv).innerHTML = "";
	else
	{
	document.getElementById(thediv).innerHTML = "<img src =/online/pages/images/sound-loader.gif width=43 height=11 border=0>";
		if (lastsound && lastParentDiv)
		{
		lastParentDiv.innerHTML = "<table cellpadding=0 cellspacing=0 border=0 style=position:absolute;z-index:1000; id=\""+movediv+"\"><tr><td id=\""+lastdiv+"\"></td></tr></table>";
		new Draggable(movediv);
		}
	var ajax = new Ajax.Updater(thediv,url,{method: 'post', parameters: params});
	}
openSoundEditor(id,thediv);
} // end of function: opSound (openSound)


function openSoundEditor(id,theOPENdiv) {
var pars = "FLD_id="+id+"&theOPENdiv="+theOPENdiv+"&remote_func=quickSoundEditor";
var url = "/online2/YJ5.AJAXfunctions.php";
new Ajax.Updater('soundedit', url,{evalScripts:true, method:'post',parameters:pars});
}

function newpage() {
theurl = document.getElementById("newpage").value;
if (theurl)
parent.location=theurl;
}


function flipDiv(div1,div2) {
var div1 = document.getElementById(div1);
var div2 = document.getElementById(div2);

	if (div1.style.display == 'block')
	{
	div1.style.display = 'none';
	div2.style.display = 'block'; 
	}
	else
	{
	div1.style.display = 'block';
	div2.style.display = 'none'; 
	}
}


function toggleDiv2(div){
var theDiv = document.getElementById(div);

if (theDiv.style.display != 'block')
theDiv.style.display = 'block';
else
theDiv.style.display = 'none';
}


function versionListMain(thediv,vers,query_string) {

var params = 'theVers=' + vers + "&thediv=" + thediv + "&script=refreshPage&query_string="+query_string;

var url = '/online2/YJ5.versionListMain.php';
var ajax = new Ajax.Updater(thediv,url,{evalScripts:true,method: 'get', parameters: params,onComplete:toggleDiv2(thediv)});
}


function versionList(thediv,vers,soundDiv,info,term) {

if (info == '')
var params = 'theVers=' + vers + "&soundDiv=" + soundDiv + "&thediv=" + thediv + "&term=" + term;
else
var params = 'theVers=' + vers + "&soundDiv=" + soundDiv + "&info="+info+"&script=changeLessVers" + "&thediv=" + thediv + "&term=" + term;

var url = '/online2/YJ5.versionList.php';
var ajax = new Ajax.Updater(thediv,url,{evalScripts:true,method: 'get', parameters: params,onComplete:toggleDiv2(thediv)});
}


function getVersions(versionDiv,currentVers,popvers,changeThisDiv,is_pop) {
var params = 'currentVers=' + currentVers + "&versionDiv=" + versionDiv + "&is_pop=" + is_pop + "&popvers=" + popvers + "&changeThisDiv="+changeThisDiv;

var url = '/online2/YJ5.getVersions.php';
var ajax = new Ajax.Updater(versionDiv,url,{evalScripts:true,method: 'get', parameters: params,onComplete:toggleDiv2(versionDiv)});
}




function updateOpen(clicked) {
var current_open = document.getElementById("nowopen").innerHTML;
document.getElementById("nowopen").innerHTML = clicked;
}





function changeVers(thediv,vers,soundDiv,info,term) {

if (document.getElementById("course") != undefined)
{
var course = document.getElementById("course").innerHTML
var less = document.getElementById("less").innerHTML
var area = document.getElementById("area").innerHTML
}
else
{
var course = '';
var less = '';
var area = '';
}
switch (vers) {
case 'mix':
var disp_vers = 'Progressive'
break

case 'romaji':
var disp_vers = 'Romaji'
break

case 'hira':
var disp_vers = 'Hiragana Only'
break

case 'hirakata':
var disp_vers = 'Hiragana / Katakana'
break

case 'kanji':
var disp_vers = 'Kanji Plus'
break

}

if (info)
{
var url = '/online2/YJ5.changeVers.php';
var params = 'theVers=' + vers + "&course="+course+"&less="+less+"&info="+info+"&term="+term;
var ajax = new Ajax.Updater(thediv,url,{evalScripts:true,method: 'get', parameters: params,onComplete:refreshPage(course,less,area)});

// alert("Lesson version changed to: " + disp_vers);
}
else
{
// alert("Popup version changed to: " + disp_vers);
var url = '/online2/YJ5.changeVers.php';
var params = 'theVers=' + vers+"&term="+term;
new Ajax.Request(url,{evalScripts:true,method: 'post', parameters: params});

var current_sound_div = 'op'+soundDiv;

document.getElementById(current_sound_div).innerHTML = "";
if (term)
opTerm(soundDiv,vers,'');
else
opSound(soundDiv,vers,'');

}
}


function changeVersMain(thediv,vers,query_string) {

var url = '/online2/YJ5.changeVers.php';
var params = 'theVers=' + vers + "&info=1";
new Ajax.Request(url,{evalScripts:true,method: 'post', parameters: params});

setTimeout(refreshMain(query_string),1000);
}


function displayPageNavigation() {
var vers = parent.frames["navi-url"].document.getElementById("vers").innerHTML;
var course = parent.frames["navi-url"].document.getElementById("course").innerHTML;
var less = parent.frames["navi-url"].document.getElementById("less").innerHTML;
var area = parent.frames["navi-url"].document.getElementById("area").innerHTML;


var pars = "course="+course+"&less="+less+"&area="+area+"&vers="+vers+"&remote_func=pageNavigation";
//parent.frames["menu-url"].document.getElementById("what").innerHTML = pars;
var url = "/online2/YJ5.AJAXfunctions.php";
new Ajax.Request(url,{method:'post',parameters:pars,onSuccess: assignNextLast});
}

function assignNextLast(resp) {
var nextlast = resp.responseText;
var data = nextlast.split('^');

var lastCourse = data[0];
var lastLess = data[1];
var lastArea = data[2];

var nextCourse = data[3];
var nextLess = data[4];
var nextArea = data[5];

var lastLink = data[6];
var nextLink = data[7];


var loadedLinks = parent.frames["menu-url"].document.getElementById("loadedLinks").innerHTML;
var links = loadedLinks.split(",");
var course = parent.frames["menu-url"].document.getElementById("course").innerHTML;
var less = parent.frames["menu-url"].document.getElementById("less").innerHTML;

if (!lastCourse || !lastLess)
parent.frames["menu-url"].document.getElementById("lastless").style.display="none";
else
{
parent.frames["menu-url"].document.getElementById("lastless").style.display="block";
	if (course != lastCourse || less != lastLess)
	{
	parent.frames["menu-url"].document.getElementById("lastless").href = "/online2/YesJapan5.0.php?course="+lastCourse+"&less="+lastLess+"&rinku="+lastArea;
	parent.frames["menu-url"].document.getElementById("lastless").target = "_parent";
	}
	else
	{
	parent.frames["menu-url"].document.getElementById("lastless").onclick = function() {changeLessonLinkHighlight(lastCourse,lastLess,lastArea)}
	parent.frames["menu-url"].document.getElementById("lastless").href = "/online2/YJ5.lesson_functions.php?course="+lastCourse+"&less="+lastLess+"&rinku="+lastArea;
	parent.frames["menu-url"].document.getElementById("lastless").target = "lesson-url";
	}
}

if (!nextCourse || !nextLess)
parent.frames["menu-url"].document.getElementById("nextless").style.display="none";
else
{

parent.frames["menu-url"].document.getElementById("nextless").style.display="block";
	if (course != nextCourse || less != nextLess)
	{
	parent.frames["menu-url"].document.getElementById("nextless").href = "/online2/YesJapan5.0.php?course="+nextCourse+"&less="+nextLess+"&rinku="+nextArea;
	parent.frames["menu-url"].document.getElementById("nextless").target = "_parent";
	}
	else
	{
	parent.frames["menu-url"].document.getElementById("nextless").onclick = function() {changeLessonLinkHighlight(nextCourse,nextLess,nextArea)}
	parent.frames["menu-url"].document.getElementById("nextless").href = "/online2/YJ5.lesson_functions.php?course="+nextCourse+"&less="+nextLess+"&rinku="+nextArea;
	parent.frames["menu-url"].document.getElementById("nextless").target = "lesson-url";
	}
}

};


function changeHighlightOnly(linkCourse,clicked) {
var loadedLinks = parent.frames["menu-url"].document.getElementById("loadedLinks").innerHTML;

var links = loadedLinks.split(",");

	for (i=0;i<links.length;i++)
	{
	var thelink = links[i];
		if (thelink)
		{
			if (clicked == thelink)
			{
			parent.frames["menu-url"].document.getElementById(thelink).style.background = "url(/online/pages/images/course"+linkCourse+"box_midS.png)";
			}
			else
			parent.frames["menu-url"].document.getElementById(thelink).style.background = "";
		}
	}

} // end of function: changeHighlightOnly




function loadLessonAreaXXX(tolink,clicked,linkCourse,linkLess) {
var loadedLinks = parent.frames["menu-url"].document.getElementById("loadedLinks").innerHTML;
var links = loadedLinks.split(",");
var course = parent.frames["menu-url"].document.getElementById("course").innerHTML;
var less = parent.frames["menu-url"].document.getElementById("less").innerHTML;
parent.frames["lesson-url"].location=tolink;

if (course != linkCourse || less != linkLess)
parent.frames["menu-url"].location='/online2/YJ5.JapaneseFromZeroMenu.php?course='+linkCourse+'&less='+linkLess+'&rinku='+clicked;
else
{
	for (i=0;i<links.length;i++)
	{
	var thelink = links[i];
		if (thelink)
		{
			if (clicked == thelink)
			{
			parent.frames["menu-url"].document.getElementById(thelink).style.background = "url(/online/pages/images/course"+course+"box_midS.png)";
			}
			else
			parent.frames["menu-url"].document.getElementById(thelink).style.background = "";
		}
	}
}
parent.frames["navi-url"].document.getElementById("course").innerHTML = linkCourse;
parent.frames["navi-url"].document.getElementById("less").innerHTML = linkLess;
parent.frames["navi-url"].document.getElementById("area").innerHTML = clicked;

var pars = "course="+course+"&less="+less+"&area="+clicked+"&remote_func=updateBookmark";
var url = "/online2/YJ5.AJAXfunctions.php";
new Ajax.Request(url,{method:'post',parameters:pars});



displayPageNavigation();
};


function encodeUrl(s) {
return encodeURIComponent(s).replace(/%20/, '+').replace(/(.{0,3})(%0A)/g,function(m, p1, p2) {return p1+(p1=='%0D'?'':'%0D')+p2;});
};

function reload(frame) {
parent.frames[frame].location.reload(true);
}

function loadWindows(link)
{
// parent.frames["menu-url"].location='/online/pages/staff/YJ5.multiMiniSoundLookup.php';
parent.frames["lesson-url"].location=link;
};

function loadSoundEditor(link,nogroup)
{
var group = document.getElementById("FLD_data1").value;
// parent.frames["menu-url"].location='/online/pages/staff/YJ5.multiMiniSoundLookup.php';
if (nogroup)
parent.frames["lesson-url"].location=link;
else
parent.frames["lesson-url"].location=link+"&group="+group;
};


function changeAdminLock(user_id,lock) {
var vers = document.getElementById("vers").innerHTML;
var course = document.getElementById("course").innerHTML;
var less = document.getElementById("less").innerHTML;
var area = document.getElementById("area").innerHTML;

var pars = "theid="+user_id+"&lock="+lock+"&remote_func=changeAdminLock";
var url = "/online2/YJ5.AJAXfunctions.php";
new Ajax.Updater('lessonMenu',url,{evalScripts:true, method:'post',parameters:pars});
alert ("Turning Admin_Lock to: '" + lock + "' for User Id: " + user_id);
parent.location='/online2/YesJapan5.0.php?course='+course+'&less='+less+'&rinku='+area;

}



function changeMenu(opendiv) {
if (parent.frames["menu-url"] == undefined)
var menuurl = document;
else
var menuurl = parent.frames["menu-url"].document;

var notSelColor = "#B9B9B9";
var selColor = menuurl.getElementById("coursecolor").innerHTML;


switch (opendiv) {
case "pics":
menuurl.getElementById("pics").style.display = "block";
menuurl.getElementById("picslink").style.backgroundColor = selColor;

menuurl.getElementById("easysound").style.display = "none";
menuurl.getElementById("easysoundlink").style.backgroundColor = notSelColor;

menuurl.getElementById("links").style.display = "none";
menuurl.getElementById("linkslink").style.backgroundColor = notSelColor;

if (menuurl.getElementById("links"))
{
menuurl.getElementById("links").style.display = "none";
menuurl.getElementById("linkslink").style.backgroundColor = notSelColor;
}
break;

case "easysound":
menuurl.getElementById("pics").style.display = "none";
menuurl.getElementById("picslink").style.backgroundColor = notSelColor;

menuurl.getElementById("easysound").style.display = "block";
menuurl.getElementById("easysoundlink").style.backgroundColor = selColor;

if (menuurl.getElementById("links"))
{
menuurl.getElementById("links").style.display = "none";
menuurl.getElementById("linkslink").style.backgroundColor = notSelColor;
}
break;

case "links":
menuurl.getElementById("pics").style.display = "none";
menuurl.getElementById("picslink").style.backgroundColor = notSelColor;

menuurl.getElementById("easysound").style.display = "none";
menuurl.getElementById("easysoundlink").style.backgroundColor = notSelColor;

menuurl.getElementById("links").style.display = "block";
menuurl.getElementById("linkslink").style.backgroundColor = selColor;
break;
}

}


function closeQuestion(id,type) {
var pars = "id="+id+"&type=" + type + "&remote_func=closeQuestion";
var url = "/online2/YJ5.AJAXfunctions.php";
// setTimeout(parent.location='/online/pages/?page=kanako',2000);
new Ajax.Updater('closed', url,{method:'post',parameters:pars});
}


function markAsKnownBug(id) {
var pars = "id="+id+ "&remote_func=markAsKnownBug";
var url = "/online2/YJ5.AJAXfunctions.php";
// setTimeout(parent.location='/online/pages/?page=kanako',2000);
new Ajax.Updater('closed', url,{method:'post',parameters:pars});
}







function startTime()
{
var today=new Date();
var h=today.getHours();
var m=today.getMinutes();
var s=today.getSeconds();
// add a zero in front of numbers<10
m=checkTime(m);
s=checkTime(s);
return(h+":"+m+":"+s);
}

function checkTime(i)
{
if (i<10)
  {
  i="0" + i;
  }
return i;
}

function showMessage(message,color) {
	if (parent.frames["menu-url"].document.getElementById("messageArea"))
	{
	var box = parent.frames["menu-url"].document.getElementById("messageArea");
	var text = parent.frames["menu-url"].document.getElementById("messageText");
	text.innerHTML = startTime() +"<br>"+ message;
	box.style.display = 'block';
	box.style.border = '2px';
	box.style.borderColor = color;
	box.style.borderStyle = 'solid';
	}
}

function submitSoundForm(theOPENdiv)
{

var elem = document.getElementById('quickSoundForm').elements;

var str = '';
for(var i = 0; i < elem.length; i++)
{
if (elem[i].type == 'radio' || elem[i].type == 'checkbox')
	{
	if (elem[i].checked)
	str += "YJSP" + elem[i].name +"YJCM"+elem[i].value;
	}
	else
	{
	str += "YJSP" + elem[i].name +"YJCM"+elem[i].value;
	}
}

//alert(str);
str = ued_encode(str);
// var pars = "vars=" + str;

var pars = "&vars=" + str+"&remote_func=quickSoundEditor";

var url = "/online2/YJ5.AJAXfunctions.php";
new Ajax.Updater('soundedit', url,{evalScripts:true, method:'post',parameters:pars});

// showMessage('Sound was saved!','green');
// document.getElementById(theOPENdiv).innerHTML = '';
// document.getElementById(theOPENdiv).style.display = 'none';
}

function logOutUser(cookie,returnpage) {
var params = "sid="+cookie+"&remote_func=logOutUser";
var url = '/online2/YJ5.AJAXfunctions.php';
new Ajax.Request(url,{method:'post',parameters:params});
alert("You have been logged out.");
parent.location = returnpage;
};

function resetFrontPage() {
var params = "remote_func=resetFrontPage";
var url = '/online2/YJ5.AJAXfunctions.php';
new Ajax.Request(url,{method:'post',parameters:params});
getPage('mainpage');
}

function nt(id,course,vers,box_length,easyword,kanri,random,u_id,action,course,vers) {
if(id) {
var url = '/online2/YJ5.soundPopUp2.php';
var params = 'id=' + id + '&u=' + u_id + '&action=' + action + '&course=' + course + '&vers=' + vers+ '&random=' + random + '&easyword=' + easyword + '&box_length=' + box_length;

var thediv = 'op' + random;

var ajax = new Ajax.Updater(thediv,url,{evalScripts:true,method: 'post', parameters: params});
}
} // end: nt


function getCourseLessons(course) {
if(course) {
var url = '/online2/YJ5.AJAXfunctions.php';
var params = 'course=' + course + "&remote_func=getCourseLessons";
document.getElementById("areaChoice").innerHTML = "";
document.getElementById("partChoice").innerHTML = "";

var ajax = new Ajax.Updater('lessonChoice',url,{evalScripts:true,method: 'post', parameters: params});
}
}

function createLink() {
var course = document.getElementById("LINKcourse").value;
var less = document.getElementById("LINKless").value;
var area = document.getElementById("LINKarea").value;
var part = document.getElementById("LINKpart").value;
if (part)
var total_link = course + "," + less + "," + area + "," + part;
else
var total_link = course + "," + less + "," + area;

final_link = "<easylesson lesson="+total_link+">";


document.getElementById("lessonLink").value = final_link;
copy('lessonLink');

var url = '/online2/YJ5.AJAXfunctions.php';
var params = 'total_link=' + total_link + "&remote_func=displayEasyLink";
var ajax = new Ajax.Updater('linkBox',url,{evalScripts:true,method: 'post', parameters: params});
}


function getLessonAreas(course,less) {
if(course && less) {
var url = '/online2/YJ5.AJAXfunctions.php';
var params = 'course=' + course + '&less=' + less + "&remote_func=getLessonAreas";
document.getElementById("partChoice").innerHTML = "";

var ajax = new Ajax.Updater('areaChoice',url,{evalScripts:true,method: 'post', parameters: params});
}
}


function getLessonParts(course,less,area) {
if(course && less && area) {
var url = '/online2/YJ5.AJAXfunctions.php';
var params = 'course=' + course + '&less=' + less + '&area=' + area + "&remote_func=getLessonParts";
document.getElementById("partChoice").innerHTML = "";

var ajax = new Ajax.Updater('partChoice',url,{evalScripts:true,method: 'post', parameters: params});
}
}


function apply_add_ajax_search() {

		// Find the search box in the DOM
		var theElement = document.getElementById('sound_search');
		
		// Create a function for when the user presses a key
		theElement.onkeyup = function(){ search_delay_sounds(this); };
}

function apply_add_ajax_search_student() {

		// Find the search box in the DOM
		var theElement = document.getElementById('sound_search');
		
		// Create a function for when the user presses a key
		theElement.onkeyup = function(){ search_delay_sounds_student(this); };
}


function search_delay_pictures(element) {

	// Create a function to get the search results
	var func = function() { getPictures(0); };

	// Check to see if there is already a timeout and if so...
	// ...cancel it and create a new one
	if ( element.zid ) {
		clearTimeout(element.zid);
	}
	element.zid = setTimeout(func,500);

}

function search_delay_pictures_student(element) {

	// Create a function to get the search results
	var func = function() { getPictures_student(0); };

	// Check to see if there is already a timeout and if so...
	// ...cancel it and create a new one
	if ( element.zid ) {
		clearTimeout(element.zid);
	}
	element.zid = setTimeout(func,500);

}


function getPictures(start) {
var search = document.getElementById("search").value;
search = search.replace("%","P_ERCENT");

var url = '/online2/YJ5.AJAXfunctions.php';
var params = 'search=' + search + "&start=" + start + "&remote_func=searchPictures";
var thediv = "pictures";
document.getElementById(thediv).style.display="block";
var ajax = new Ajax.Updater(thediv,url,{method: 'post', parameters: params});
}

function getPictures_student(start) {
var search = document.getElementById("search").value;
search = search.replace("%","P_ERCENT");

var url = '/online2/YJ5.AJAXfunctions.php';
var params = 'search=' + search + "&start=" + start + "&remote_func=searchPictures&student=1";
var thediv = "pictures";
document.getElementById(thediv).style.display="block";
var ajax = new Ajax.Updater(thediv,url,{method: 'post', parameters: params});
}

function search_delay_sounds(element) {
	// Create a function to get the search results
	var func = function() { getSounds(0); };

	// Check to see if there is already a timeout and if so...
	// ...cancel it and create a new one
	if ( element.zid ) {
		clearTimeout(element.zid);
	}
	element.zid = setTimeout(func,500);

}

function search_delay_sounds_student(element) {
	// Create a function to get the search results
	var func = function() { getSounds_student(0); };

	// Check to see if there is already a timeout and if so...
	// ...cancel it and create a new one
	if ( element.zid ) {
		clearTimeout(element.zid);
	}
	element.zid = setTimeout(func,500);

}


function getSounds(start) {
var rawcheck = document.getElementById("raw").checked;
if (rawcheck == true)
var raw = 1;
else
var raw = 0;

var search = document.getElementById("sound_search").value;
var course = document.getElementById("sound_course").value;
var less = document.getElementById("sound_less").value;
search = search.replace("%","P_ERCENT");
var url = '/online2/YJ5.AJAXfunctions.php';
if (raw)
var params = 'search=' + search + "&start=" + start + "&course=" + course + "&less=" + less + "&remote_func=searchRawSounds";
else
var params = 'search=' + search + "&start=" + start + "&course=" + course + "&less=" + less + "&remote_func=searchSounds";
var thediv = "sounds";
document.getElementById(thediv).style.display="block";
var ajax = new Ajax.Updater(thediv,url,{method: 'post', parameters: params});
}



function getSounds_student(start) {
var rawcheck = document.getElementById("raw").checked;
if (rawcheck == true)
var raw = 1;
else
var raw = 0;

var search = document.getElementById("sound_search").value;
var course = document.getElementById("sound_course").value;
var less = document.getElementById("sound_less").value;

for (i=0;i<document.sound_query_form.anywhere.length;i++){
	if (document.sound_query_form.anywhere[i].checked==true){
	var anywhere = document.sound_query_form.anywhere[i].value;
	document.sound_query_form.anywhere[i].checked = true;
	}
	else
	document.sound_query_form.anywhere[i].checked = false;
}

search = search.replace("%","P_ERCENT");
var url = '/online2/YJ5.AJAXfunctions.php';
if (raw)
var params = 'search=' + search + "&start=" + start + "&anywhere=" + anywhere + "&course=" + course + "&less=" + less + "&remote_func=searchRawSounds";
else
var params = 'search=' + search + "&start=" + start + "&anywhere=" + anywhere + "&course=" + course + "&less=" + less + "&remote_func=searchSounds&student=1";
var thediv = "sounds";

document.getElementById(thediv).style.display="block";
document.getElementById(thediv).innerHTML = "<div style=\"border: 1px solid black;padding:5px;\"><br><img src =/online/pages/images/progress_bar.gif width=190 height=14 border=0><br>searching for <b>"+search+"</b>...</div>";
var ajax = new Ajax.Updater(thediv,url,{method: 'post', parameters: params});
}

function lessonHelpMenu(var4,div) {

if (document.getElementById(div).style.display == "block")
document.getElementById(div).style.display = "none";
else
{
var params = 'var4=' + var4 + "&div=" + div;
var thediv = div;

var url = '/online2/YJ5.lessonHelpMenu.php';
var ajax = new Ajax.Updater(thediv,url,{evalScripts:true,method: 'get', parameters: params});

document.getElementById(div).style.display = "block";
}
}




function refreshPage(course,less,rinku) {
parent.document.location = "/online2/YesJapan5.0.php?course="+course+"&less="+less+"&rinku="+rinku;
}


function addPicData(id,sound,tags) {
$('picdata').value = '';

if (sound != 0)
var easypicData = '<easypic id='+id+' sound='+sound+'>'+tags+'</easypic>';
else
var easypicData = '<easypic id='+id+'>'+tags+'</easypic>';
$('picdata').value = easypicData;
document.getElementById("pictures").style.display="none";

copy('picdata');

var div = "picBox";
var pars = "id="+id;
var url = "/online/pages/YJ5.displayPic.php";
new Ajax.Updater(div, url,{method:'post',parameters:pars});

}


function changeColor(color)
{
id = $('soundIDdata').value;
tags = $('generated_tags').value;

document.getElementById("sound_color").value=color;
document.sound_query_form.iro.value = color;

var theone
for (i=0;i<document.sound_query_form.iro.length;i++){
if (document.sound_query_form.iro[i].value==color){
document.sound_query_form.iro[i].checked = true;
break //exist for loop, as target acquired.
}
}
addSoundData(id,tags,color)
}



function addSoundData(id,tags,type,term) {
$('generated_snippet').value = '';
$('soundIDdata').value = id;
var type = $('sound_color').value;
if (!type)
var type = 'blue';

if (term == undefined || !term)
{
var idpart = "id="+id;
var pars = "id="+id+"&type="+type;
}
else
{
var idpart = "id="+id+" term=1";
var pars = "term="+id+"&type="+type;
}
if (type != 'none')
var easywordData = '<easyword '+idpart+' type='+type+'>'+tags+'</easyword>';
else
var easywordData = '<easyword '+idpart+'>'+tags+'</easyword>';


$('generated_snippet').value = easywordData;
$('generated_tags').value = tags;
copy('generated_snippet');

document.getElementById("sounds").style.display = "none";

var div = "soundBox";
var url = "/online/pages/YJ5.displaySound.php";
new Ajax.Updater(div, url,{method:'post',parameters:pars});

}



function copy(thediv) {
inElement = document.getElementById(thediv);
  if (inElement.createTextRange) {
    var range = inElement.createTextRange();
    if (range && BodyLoaded==1)
      range.execCommand('Copy');
  } else {
    var flashcopier = 'flashcopier';
    if(!document.getElementById(flashcopier)) {
      var divholder = document.createElement('div');
      divholder.id = flashcopier;
      document.body.appendChild(divholder);
    }
    document.getElementById(flashcopier).innerHTML = '';
    var divinfo = '<embed src="/online/pages/_clipboard.swf" FlashVars="clipboard='+inElement.innerHTML+'" width="0" height="0" type="application/x-shockwave-flash"></embed>';
    document.getElementById(flashcopier).innerHTML = divinfo;
  }
}



function changeButton(id,btn1,btn2) {
var current = document.getElementById(id).src;
if (current == btn1)
document.getElementById(id).src = btn2;
else
document.getElementById(id).src = btn1;
}


function closeDiv(div) {
document.getElementById(div).style.display = "none";
}

function eraseDiv(div) {
document.getElementById(div).innerHTML = "";
}


function openCloseDiv(div) {
if (document.getElementById(div).style.display == 'none')
document.getElementById(div).style.display = "block";
else
document.getElementById(div).style.display = "none";
}


function submitFormValues(page,formname)
{
if (formname == null)
var formname = 'submissionForm';

var str = '';
var elem = document.getElementById(formname).elements;
for(var i = 0; i < elem.length; i++)
{
if (elem[i].type == 'radio' || elem[i].type == 'checkbox')
	{
	if (elem[i].checked)
	str += elem[i].name +"YJSP"+elem[i].value+"YJCM";
	}
	else
	{
	str += elem[i].name +"YJSP"+elem[i].value+"YJCM";
	}
if (elem[i].name == 'looking')
var looking = elem[i].value;
}

str = ued_encode(str);
var pars = "var1=form&var2="+str+"&page="+page+"&looking="+looking;

var url = "/online/pages/YJ5.getPage.php";

document.getElementById("pagecontent").innerHTML = "<br><br><br><img src =/online/pages/images/progress_bar.gif width=190 height=14 border=0><br>processing now...";
new Ajax.Updater('pagecontent', url,{evalScripts:true, method:'post',parameters:pars});
}


function sendLoginPopup (a, b, c, d){
var topStr = (screen.availHeight/2)-61;
var leftStr = (screen.availWidth/2)-150;
window.open("/online/pages/YJ5.LogInPopUp.php?b_var2="+a+"&b_var3="+b+"&b_var4="+c+"&b_var5="+d,"logattempt","menubar=no,width=370,height=220,toolbar=no,top="+topStr+",left="+leftStr+"");
}


function embedVideo(clip,close)
{
var div = "clip"+clip;
var url = "/online/pages/YJ5.embedYouTube.php?clip="+clip+"&close="+close;
new Ajax.Updater(div, url,{evalScripts:true});
}

function popup(url, width, height)
{
	window.open(url.replace(/&amp;/g, '&'), '_popup', 'HEIGHT=' + height + ',resizable=yes,scrollbars=yes, WIDTH=' + width);
	return false;
}




function recordMediaVote(media_id,user_id) {
var sushis = document.getElementById('sushis').value;
var comments = document.getElementById('comments').value;
if (!sushis)
alert ("You must choose a rank.");
else
{
// alert (media_id + " ----> " + user_id + " ----> " + sushis + " ----> " + comments);
var pars = "page=recordvote&var1="+media_id+"&var2="+sushis+"&var3="+comments+"&var4="+user_id;
var url = "/online/pages/YJ5.recordMediaVote.php";
new Ajax.Updater('voteform', url,{evalScripts:true, method:'get',parameters:pars});
}

}


function setBackHeight() {
alert(document.body.clientHeight);
document.getElementById("backdiv").style.height=document.body.scrollHeight;
document.getElementById("backdiv").style.backgroundColor='red';
}


function changePage(page,page_num) {
var junban = document.getElementById('junban').value;
var showtype =  document.getElementById('showtype').value;
var pars = "page="+page+"&var1="+junban+"&var2="+page_num+"&var3="+showtype;

var url = "/online/pages/YJ5.getPage.php";
document.getElementById("pagecontent").innerHTML = "<br><br><br><img src =/online/pages/images/progress_bar.gif width=190 height=14 border=0><br>loading page...";
new Ajax.Updater('pagecontent', url,{evalScripts:true, method:'post',parameters:pars});
}


function refreshMain(querystring) {
var pars = querystring;
var url = "/online/pages/YJ5.getPage.php";
document.getElementById("pagecontent").innerHTML = "<br><br><br><img src =/online/pages/images/progress_bar.gif width=190 height=14 border=0><br>loading page...";
new Ajax.Updater('pagecontent', url,{evalScripts:true, method:'post',parameters:pars});
}



function checkRadios(junban) {
if (junban)
var toSelect = "CHK"+junban;
else
var toSelect = "CHKnewest";

document.getElementById(toSelect).checked = "true";
}

function getPage(page,var1,var2,var3,var4,user_id,theuser,debug,looking) {
// alert(user_id);
var pars = "page="+page+"&var1="+var1+"&var2="+var2+"&var3="+var3+"&var4="+var4+"&theuser="+theuser+"&user_id="+user_id+"&debug="+debug+"&looking="+looking;
var url = "/online/pages/YJ5.getPage.php";
document.getElementById("pagecontent").innerHTML = "<br><br><br><img src =/online/pages/images/progress_bar.gif width=190 height=14 border=0><br>loading page...";
new Ajax.Updater('pagecontent', url,{evalScripts:true, method:'post',parameters:pars});
}


function postFormValues(page,submitted_form,div,url,followup_function)
{
if (div == null)
var div = 'pagecontent';

if (url == null)
var url = '/online/pages/YJ5.getPage.php';

if (submitted_form == null)
var submitted_form = 'submissionForm';

var str = '';
var myform = document.getElementById(submitted_form);
for(var i = 0; i < myform.elements.length; i++)
{
if (myform.elements[i].type == 'radio' || myform.elements[i].type == 'checkbox')
	{
	if (myform.elements[i].checked)
	str += myform.elements[i].name + "=" + myform.elements[i].value + "&";
	}
	else
	{
	str += myform.elements[i].name + "=" + myform.elements[i].value + "&";
	}
}

var pars = str+"page="+page;
document.getElementById(div).innerHTML = "<br><img src =/online/pages/images/progress_bar.gif width=190 height=14 border=0><br>loading...";

document.getElementById(div).innerHTML = "<br><br><br><img src =/online/pages/images/progress_bar.gif width=190 height=14 border=0><br>processing now...";

if (followup_function)
onComplete:
new Ajax.Updater(div, url,{evalScripts:true, method:'post',parameters:pars,onComplete:eval(followup_function)});
else
new Ajax.Updater(div, url,{evalScripts:true, method:'post',parameters:pars});
}


function favoriteBox(u_id,media_id,action) {
// alert (media_id + " ----> " + id + " ----> " + action);
document.getElementById("streaming_video").innerHTML = "<br><img src =/online/pages/images/progress_bar.gif width=190 height=14 border=0><br>loading...";
document.getElementById("box_title").innerHTML = "&nbsp;Favorite";
var pars = "var1="+media_id+"&var4="+action+"&var3="+u_id+"&l="+u_id;
var url = "/online/pages/YJ5.favoriteShowEditor.php";
new Ajax.Updater('streaming_video', url,{evalScripts:true, method:'post',parameters:pars});
}


function getGame(page,course,less,vers,var1,var2,var3,var4,user_id,theuser,debug,looking) {
var pars = "page="+page+"&var1="+var1+"&course="+course+"&less="+less+"&vers="+vers+"&var2="+var2+"&var3="+var3+"&var4="+var4+"&theuser="+theuser+"&user_id="+user_id;
var url = "/online/pages/YJ5.getGame.php";
document.getElementById("pagecontent").innerHTML = "<br><br><br><img src =/online/pages/images/progress_bar.gif width=190 height=14 border=0><br>loading game...";
new Ajax.Updater('pagecontent', url,{evalScripts:true, method:'post',parameters:pars});
}


function instantBuy(u_id,id,media_id,action) {
// alert (media_id + " ----> " + id + " ----> " + action);
document.getElementById("streaming_video").innerHTML = "<br><img src =/online/pages/images/progress_bar.gif width=190 height=14 border=0><br>loading...";
var pars = "media_id="+media_id+"&action="+action+"&user_id="+u_id;
var url = "/online/pages/YJ6.instantPurchase.php";
document.getElementById("box_title").innerHTML = "&nbsp;Instant Buy";
new Ajax.Updater('streaming_video', url,{evalScripts:true, method:'post',parameters:pars});
}

function reloadVideoDetailsPage(media_id) {
parent.document.location = "/online/pages/index.php?&page=videos&var1="+media_id;
}


function updateMediaCart2009(u_id,id,media_id,action) {
// alert (media_id + " ----> " + id + " ----> " + action);
var pars = "media_id="+media_id+"&action="+action+"&user_id="+u_id;

updateCartNumbers(u_id,action);

if (action == 'ADD')
document.getElementById("ADD"+media_id).src = '/online2/images/cart-remove.png';
else
document.getElementById("ADD"+media_id).src = '/online2/images/cart-add.png';

var url = "/online/pages/YJ6.updateMediaCart.php";
new Ajax.Updater(id, url,{evalScripts:true, method:'post',parameters:pars});
}


function updateMediaCart(u_id,id,media_id,action) {
// alert (media_id + " ----> " + id + " ----> " + action);
var pars = "media_id="+media_id+"&action="+action+"&user_id="+u_id;
updateCartNumbers(u_id,action);
var url = "/online/pages/YJ5.updateMediaCart.php";
new Ajax.Updater(id, url,{evalScripts:true, method:'post',parameters:pars});
}


function updateCartNumbers(u_id,action) {
var incart = document.getElementById("mycart").innerHTML;
if (action == 'REMOVE')
document.getElementById("mycart").innerHTML = parseInt(incart) - 1;

if (action == 'ADD')
document.getElementById("mycart").innerHTML = parseInt(incart) + 1;

}

function displayURL(url) {
new Ajax.Updater('pagecontent', url);
}

function calcHeight()
{
  //find the height of the internal page
  var the_height=document.getElementById('mainframe').contentWindow.document.body.scrollHeight;

  //change the height of the iframe
  document.getElementById('mainframe').height=the_height+100;
}

//ued_encode() will take an array as its argument and return the data encoded in UED format - as a string.
//http://www.openjs.com/scripts/data/ued_url_encoded_data/
function ued_encode(arr,current_index) {
	var query = ""
	if(typeof current_index=='undefined') current_index = '';

	if(typeof(arr) == 'object') {
		var params = new Array();
		for(key in arr) {
			var data = arr[key];
			var key_value = key;
			if(current_index) {
				key_value = current_index+"["+key+"]"
			}

			if(typeof(data) == 'object') {
				if(data.length) { //List
					for(var i=0;i<data.length; i++) {
						params.push(key_value+"[]="+ued_encode(data[i],key_value)); //:RECURSION:
					}
				} else { //Associative array
					params.push(ued_encode(data,key_value)); //:RECURSION:
				}
			} else { //String or Number
				params.push(key_value+"="+encodeURIComponent(data));
			}
		}
		query = params.join("&");
	} else {
		query = encodeURIComponent(arr);
	}

	return query;
}

var qstart = 0;
var sqstart = 0;
var cstart = 0;

function moreQuestions(updown,reset) {
var skip_amount = 5;

var orderby = document.getElementById("orderby").value;
var orderstudent = document.getElementById("orderstudent").value;

if (reset == 1)
qstart = 0;
else
{
if (updown == 'down')
qstart = qstart - skip_amount;
else
qstart = qstart + skip_amount;
}

var div = 'questions';

var pars = "start="+qstart+"&orderby="+orderby+"&orderstudent="+orderstudent+"&ajax=1&remote_func=askTeacherQuestions";
var url = "/online2/YJ5.AJAXfunctions.php";

new Ajax.Updater(div, url,{method:'post',parameters:pars,onComplete: reloadMoreQuestions(qstart)});
}


function reloadMoreQuestions(qstart) {
var skip_amount = 5;

if (qstart > 0)
{
	if (qstart > skip_amount)
	document.getElementById("morequestions").innerHTML = "<a href = # onclick = \"moreQuestions('down',1);return false;\" style=color:#FFFFFF;>first "+skip_amount+"</a> | <a href = # onclick = \"moreQuestions('down',0);return false;\" style=color:#FFFFFF;>back</a> | <a href = # onclick = \"moreQuestions('up','');return false;\" style=color:#FFFFFF;>next</a>";
	else
	document.getElementById("morequestions").innerHTML = "<a href = # onclick = \"moreQuestions('down',0);return false;\" style=color:#FFFFFF;>back</a> | <a href = # onclick = \"moreQuestions('up',0);return false;\" style=color:#FFFFFF;>next</a>";
}
else
document.getElementById("morequestions").innerHTML = "<a href = # onclick = \"moreQuestions('up',0);return false;\" style=color:#FFFFFF;>next</a>";

}



function moreSquestions(updown,reset) {
var skip_amount = 5;

var orderby = document.getElementById("orderby").value;
var orderstudent = document.getElementById("orderstudent").value;

if (reset == 1)
sqstart = 0;
else
{
if (updown == 'down')
sqstart = sqstart - skip_amount;
else
sqstart = sqstart + skip_amount;
}

var div = 'squestions';

var pars = "start="+sqstart+"&orderby="+orderby+"&orderstudent="+orderstudent+"&type=student&ajax=1&remote_func=askTeacherQuestions";
var url = "/online2/YJ5.AJAXfunctions.php";
document.getElementById("moreSquestions").innerHTML = "<img src =/online/pages/images/ajax_load.gif width=43 height=11 border=0><font color=#31659B> loading...</font>";

new Ajax.Updater(div, url,{method:'post',parameters:pars,onComplete: reloadMoreSquestions(sqstart)});
}

function reloadMoreSquestions(sqstart) {
var skip_amount = 5;

if (sqstart > 0)
{
	if (sqstart > skip_amount)
	document.getElementById("moreSquestions").innerHTML = "<a href = # onclick = \"moreSquestions('down',1);return false;\" style=color:#FFFFFF;>first "+skip_amount+"</a> | <a href = # onclick = \"moreSquestions('down',0);return false;\" style=color:#FFFFFF;>back</a> | <a href = # onclick = \"moreSquestions('up');return false;\" style=color:#FFFFFF;>next</a>";
	else
	document.getElementById("moreSquestions").innerHTML = "<a href = # onclick = \"moreSquestions('down',0);return false;\" style=color:#FFFFFF;>back</a> | <a href = # onclick = \"moreSquestions('up',0);return false;\" style=color:#FFFFFF;>next</a>";
}
else
document.getElementById("moreSquestions").innerHTML = "<a href = # onclick = \"moreSquestions('up',0);return false;\" style=color:#FFFFFF;>next</a>";

}


function moreComments(updown,reset) {
var skip_amount = 10;

if (reset == 1)
cstart = 0;

if (updown == 'down')
cstart = cstart - skip_amount;
else
cstart = cstart + skip_amount;

var display = skip_amount;
var pars = "start="+cstart+"&display="+display+"&ajax=1&remote_func=recentComments";
var url = "/online2/YJ5.AJAXfunctions.php";
document.getElementById("comments").innerHTML = "<img src =/online/pages/images/ajax_load.gif width=43 height=11 border=0><font color=#31659B> loading...</font>";
new Ajax.Updater('comments', url,{method:'post',parameters:pars,onComplete: reloadMoreComments(cstart)});
}


function reloadMoreComments(cstart) {
var skip_amount = 5;
if (cstart > 0)
{
	if (cstart > skip_amount)
	document.getElementById("morecomments").innerHTML = "<a href = # onclick = \"moreComments('down',1);return false;\" style=color:#FFFFFF;>first </a> | <a href = # onclick = \"moreComments('down',0);return false;\" style=color:#FFFFFF;>back</a> | <a href = # onclick = \"moreComments('up',0);return false;\" style=color:#FFFFFF;>next</a>";
	else
	document.getElementById("morecomments").innerHTML = "<a href = # onclick = \"moreComments('down',0);return false;\" style=color:#FFFFFF;>back</a> | <a href = # onclick = \"moreComments('up',0);return false;\" style=color:#FFFFFF;>next</a>";
}
else
document.getElementById("morecomments").innerHTML = "<a href = # onclick = \"moreComments('up',0);return false;\" style=color:#FFFFFF;>next</a>";
}


function goLite(BTN)
{
   document.getElementById(BTN).style.backgroundColor = "#D9D9D9";
}

function goDim(BTN)
{
   document.getElementById(BTN).style.backgroundColor = "#FFFFCC";
}

function resizable(unique_id) {
handleRight = document.getElementById("handleRight_" + unique_id);
handleCorner = document.getElementById("handleCorner_" + unique_id);
handleBottom = document.getElementById("handleBottom_" + unique_id);

new dragObject_DD(handleRight, unique_id, null, new Position_DD(15, 0),
    new Position_DD(500, 0), null, RightMove_DD, null, false);
new dragObject_DD(handleBottom, unique_id, null, new Position_DD(0, 15),
    new Position_DD(0, 500), null, BottomMove_DD, null, false);
new dragObject_DD(handleCorner, unique_id, null, new Position_DD(15, 15),
    new Position_DD(500, 500), null, CornerMove_DD, null, false);
}

function Position_DD(x, y)
{
  this.X = x;
  this.Y = y;
  
  this.Add = function(val)
  {
    var newPos = new Position_DD(this.X, this.Y);
    if(val != null)
    {
      if(!isNaN(val.X))
        newPos.X += val.X;
      if(!isNaN(val.Y))
        newPos.Y += val.Y
    }
    return newPos;
  }
  
  this.Subtract = function(val)
  {
    var newPos = new Position_DD(this.X, this.Y);
    if(val != null)
    {
      if(!isNaN(val.X))
        newPos.X -= val.X;
      if(!isNaN(val.Y))
        newPos.Y -= val.Y
    }
    return newPos;
  }
  
  this.Min = function(val)
  {
    var newPos = new Position_DD(this.X, this.Y)
    if(val == null)
      return newPos;
    
    if(!isNaN(val.X) && this.X > val.X)
      newPos.X = val.X;
    if(!isNaN(val.Y) && this.Y > val.Y)
      newPos.Y = val.Y;
    
    return newPos;  
  }
  
  this.Max = function(val)
  {
    var newPos = new Position_DD(this.X, this.Y)
    if(val == null)
      return newPos;
    
    if(!isNaN(val.X) && this.X < val.X)
      newPos.X = val.X;
    if(!isNaN(val.Y) && this.Y < val.Y)
      newPos.Y = val.Y;
    
    return newPos;  
  }  
  
  this.Bound = function(lower, upper)
  {
    var newPos = this.Max(lower);
    return newPos.Min(upper);
  }
  
  this.Check = function()
  {
    var newPos = new Position_DD(this.X, this.Y);
    if(isNaN(newPos.X))
      newPos.X = 0;
    if(isNaN(newPos.Y))
      newPos.Y = 0;
    return newPos;
  }
  
  this.Apply = function(element)
  {
    if(typeof(element) == "string")
      element = document.getElementById(element);
    if(element == null)
      return;
    if(!isNaN(this.X))
      element.style.left = this.X + 'px';
    if(!isNaN(this.Y))
      element.style.top = this.Y + 'px';  
  }
}

function hookEvent_DD(element, eventName, callback)
{
  if(typeof(element) == "string")
    element = document.getElementById(element);
  if(element == null)
    return;
  if(element.addEventListener)
  {
    element.addEventListener(eventName, callback, false);
  }
  else if(element.attachEvent)
    element.attachEvent("on" + eventName, callback);
}

function unhookEvent_DD(element, eventName, callback)
{
  if(typeof(element) == "string")
    element = document.getElementById(element);
  if(element == null)
    return;
  if(element.removeEventListener)
    element.removeEventListener(eventName, callback, false);
  else if(element.detachEvent)
    element.detachEvent("on" + eventName, callback);
}

function cancelEvent_DD(e)
{
  e = e ? e : window.event;
  if(e.stopPropagation)
    e.stopPropagation();
  if(e.preventDefault)
    e.preventDefault();
  e.cancelBubble = true;
  e.cancel = true;
  e.returnValue = false;
  return false;
}

function getMousePos_DD(eventObj)
{
  eventObj = eventObj ? eventObj : window.event;
  var pos;
  if(isNaN(eventObj.layerX))
    pos = new Position_DD(eventObj.offsetX, eventObj.offsetY);
  else
    pos = new Position_DD(eventObj.layerX, eventObj.layerY);
  return correctOffset(pos, pointerOffset, true);
}

function getEventTarget_DD(e)
{
  e = e ? e : window.event;
  return e.target ? e.target : e.srcElement;
}

function absoluteCursorPostion_DD(eventObj)
{
  eventObj = eventObj ? eventObj : window.event;
  
  if(isNaN(window.scrollX))
    return new Position_DD(eventObj.clientX + document.documentElement.scrollLeft + document.body.scrollLeft, 
      eventObj.clientY + document.documentElement.scrollTop + document.body.scrollTop);
  else
    return new Position_DD(eventObj.clientX + window.scrollX, eventObj.clientY + window.scrollY);
}

function dragObject_DD(element, unique_id, attachElement, lowerBound, upperBound, startCallback, moveCallback, endCallback, attachLater)
{
  if(typeof(element) == "string")
    element = document.getElementById(element);
  if(element == null)
      return;
  
  if(lowerBound != null && upperBound != null)
  {
    var temp = lowerBound.Min(upperBound);
    upperBound = lowerBound.Max(upperBound);
    lowerBound = temp;
  }

  var cursorStartPos = null;
  var elementStartPos = null;
  var dragging = false;
  var listening = false;
  var disposed = false;
  
  function dragStart_DD(eventObj)
  { 
    if(dragging || !listening || disposed) return;
    dragging = true;
    
    if(startCallback != null)
      startCallback(eventObj, element);
    
    cursorStartPos = absoluteCursorPostion_DD(eventObj);
    
    elementStartPos = new Position_DD(parseInt(element.style.left), parseInt(element.style.top));
   
    elementStartPos = elementStartPos.Check();
    
    hookEvent_DD(document, "mousemove", dragGo_DD);
    hookEvent_DD(document, "mouseup", dragStopHook_DD);
    
    return cancelEvent_DD(eventObj);
  }
  
  function dragGo_DD(eventObj)
  {
    if(!dragging || disposed) return;
    
    var newPos = absoluteCursorPostion_DD(eventObj);
    newPos = newPos.Add(elementStartPos).Subtract(cursorStartPos);
    newPos = newPos.Bound(lowerBound, upperBound)
    newPos.Apply(element);
    if(moveCallback != null)
      moveCallback(newPos, element, unique_id);
        
    return cancelEvent_DD(eventObj); 
  }
  
  function dragStopHook_DD(eventObj)
  {
    dragStop_DD();
    return cancelEvent_DD(eventObj);
  }
  
  function dragStop_DD()
  {
    if(!dragging || disposed) return;
    unhookEvent_DD(document, "mousemove", dragGo_DD);
    unhookEvent_DD(document, "mouseup", dragStopHook_DD);
    cursorStartPos = null;
    elementStartPos = null;
    if(endCallback != null)
      endCallback(element);
    dragging = false;
  }
  
  this.Dispose = function()
  {
    if(disposed) return;
    this.StopListening(true);
    element = null;
    attachElement = null
    lowerBound = null;
    upperBound = null;
    startCallback = null;
    moveCallback = null
    endCallback = null;
    disposed = true;
  }
  
  this.StartListening = function()
  {
    if(listening || disposed) return;
    listening = true;
    hookEvent_DD(attachElement, "mousedown", dragStart_DD);
  }
  
  this.StopListening = function(stopCurrentDragging)
  {
    if(!listening || disposed) return;
    unhookEvent_DD(attachElement, "mousedown", dragStart_DD);
    listening = false;
    
    if(stopCurrentDragging && dragging)
      dragStop_DD();
  }
  
  this.IsDragging = function(){ return dragging; }
  this.IsListening = function() { return listening; }
  this.IsDisposed = function() { return disposed; }
  
  if(typeof(attachElement) == "string")
    attachElement = document.getElementById(attachElement);
  if(attachElement == null)
    attachElement = element;
    
  if(!attachLater)
    this.StartListening();
}


function BottomMove_DD(newPos, element, unique_id)
{
  DoHeight_DD(newPos.Y, element, unique_id);
}

function RightMove_DD(newPos, element, unique_id)
{
  DoWidth_DD(newPos.X, element, unique_id);
}

function CornerMove_DD(newPos, element, unique_id)
{
  DoHeight_DD(newPos.Y, element, unique_id);
  DoWidth_DD(newPos.X, element, unique_id);
}

function DoHeight_DD(y, element, unique_id)
{
  document.getElementById("textDiv_"+unique_id).style.height = (y + 5) + 'px';

  if(element != handleCorner)
    document.getElementById("handleCorner_"+unique_id).style.top = y + 'px';

  document.getElementById("handleRight_"+unique_id).style.height = y + 'px';

  if(element != handleBottom)
    document.getElementById("handleBottom_"+unique_id).style.top = y + 'px';
 
  document.getElementById("value_"+unique_id).style.height = (y - 5) + 'px';
}

function DoWidth_DD(x, element, unique_id)
{

  document.getElementById("textDiv_"+unique_id).style.width =  (x + 5) + 'px';

  if(element != handleCorner)
    document.getElementById("handleCorner_"+unique_id).style.left = x + 'px';

  if(element != handleRight)
    document.getElementById("handleRight_"+unique_id).style.left = x + 'px';

  document.getElementById("handleBottom_"+unique_id).style.width = x + 'px';

  document.getElementById("value_"+unique_id).style.width = (x - 5) + 'px';
}


