var cols;
var sel = new Array;

var editPage="";

function go(formId) {
	form = document.getElementById(formId);
	form.submit();
}

function closePopWin() {
//	hidePopWin(false);
	var actionField = document.getElementById("action");
	var form = actionField.form;
	form.submit();
}

function showEditPage(page) {
	if(editPage!="") {
		var lastPage = document.getElementById("subPage_"+editPage);
		lastPage.style.display = 'none';
	}
	showPage = document.getElementById("subPage_"+page);
	showPage.style.display = '';
	editPage = page;

	var currentPage = document.getElementById("pageName");
	currentPage.value = page;

}

var selectedTracks;
function selectTrack(disc,id) {

	var inputFieldName = "disc_"+disc;
	var imageFieldName = "discimage_"+disc+"_"+id;
	inputField = document.getElementById(inputFieldName);

	var currentValue = inputField.value;
	var re = new RegExp(".*"+id+".*","g");

	r = currentValue.search(re);
	image = document.getElementById(imageFieldName);
	if(r==false) {
		newVal = currentValue.replace(","+id,"");
		inputField.value = newVal; 
		image.src = 'http://development/colville/onedesk/style/sttw/images/tick_box_off.gif';
	} else {
		inputField.value = inputField.value + "," + id;
		image.src = 'http://development/colville/onedesk/style/sttw/images/tick_box_down.gif';
	}

}


function dispSubClass(field,action,urn) {
	var actionField = document.getElementById("action");
	actionField.value = "dispSubClass";
	var subField = document.getElementById("subField");
	subField.value = field;
	var subAction = document.getElementById("subAction");
	subAction.value = action;
	var subUrnField = document.getElementById("subUrn");
	subUrnField.value = urn;
	var form = actionField.form;
	form.submit();
}


function dispSelect(field) {
	var action = document.getElementById("action");
	var subField = document.getElementById("subField");
	action.value = "dispSelect";
	subField.value = field;
	var form = action.form;
	form.submit();
}


function removePick(field,pickUrn) {
	var action = document.getElementById("action");
	var pickField = document.getElementById("pickField");
	var pickUrnField = document.getElementById("pickUrn");
	action.value = "removePick";
	pickField.value = field;
	pickUrnField.value = pickUrn;
	var form = action.form;
	form.submit();
}

function addPick(field,pickUrn) { 
	var docParent = window.frameElement.ownerDocument;
	var action = docParent.getElementById("action");
	var pickField = docParent.getElementById("pickField");
	var pickUrnField = docParent.getElementById("pickUrn");
	action.value = "addPick";
	pickField.value = field;
	pickUrnField.value = pickUrn;
	var form = action.form;
	form.submit();
}

function mObject(){
   if (navigator.appName.indexOf ("Microsoft") !=-1){
    	return window["SingMovie"];
   }else{
    	return document["SingMovie"];
   }
}

function stop() {
   mObject().StopPlay();
}

function play() {
   mObject().Play();
}

function rewind() {
	var play = 0;	

	if(mObject().IsPlaying()){
		play=1;
	}

	mObject().GotoFrame(4);

	if(play==1) {
		mObject().Play();
	}
}

function pause() {
   if(mObject().IsPlaying()){
	    stop();
   }else{
    	play();
   }
}

function submitListForm(formName,listfield) {
	var action = document.getElementById("action_"+formName);
	if(action=="moveTo") {
		var moveTo  = document.getElementById("moveTo_"+formName);
		moveTo.value = listfield.option[listfield.value].id;
	}
	action.value = listfield.value;
	action.form.submit();
}

function submitForm(action,formName) { 
	var actionField = document.getElementById("action_"+formName);
	actionField.value = action;
	actionField.form.submit();
}

function submitForm1(action,formName, itemValue) { 
	var actionField = document.getElementById("action_"+formName);
	var itemField = document.getElementById("pagesize");
	itemField.value = itemValue;
	actionField.value = action;
	actionField.form.submit();
}

function submit(action) { 
	var actionField = document.getElementById("action");
	actionField.value = action;
	form = actionField.form;
	form.submit();
}

function doSubmit(action) { 
	var actionField = document.getElementById("action");
	actionField.value = action;

	form = actionField.form;
	form.submit();
}


var playTrack = false;
function playMP3(trackUrl) {
	if(playTrack) { stopTrack; playTrack=false; return; }
	Player.URL=trackUrl;
	playTrack = true;
}

function stopTrack() {
	Player.controls.stop();
}

function highlightRow(row,on) {
	var cell;
	for(i=0;i<cols;i++) {
		name = "cell"+row+"_"+i;
		cell = document.getElementById(name);
		if(on) {
			if(sel[row]) {
				cell.className="tableDataSelected";
			} else {
				cell.className="tableDataOver";
			}
		} else {
			if(sel[row]) {
				cell.className="tableDataSelected";
			} else {
				if((row%2)==0) {
					end="Even";
				} else {
					end = "Odd";
				}
				cell.className="tableData"+end;
			}
		}
	}
}

function selectRow(row) {
	if(sel[row]) {
		sel[row]=false;
	} else {
		sel[row]=true;
	}
	for(i=0;i<cols;i++) {
		name = "cell"+row+"_"+i;
		cell = document.getElementById(name);
		if(sel[row]) {
			cell.className="tableDataSelected";
		} else {
			if((row%2)==0) {
				end="Even";
			} else {
				end = "Odd";
			}
			cell.className="tableData"+end;
		}
	}
	
}


function showHide(id) {
	var searchBox = document.getElementById(id);
	if(searchBox.style.display=="none") {
		searchBox.style.display="";
	} else {
		searchBox.style.display="none";
	}
}

function hide(id) {
	var searchBox = document.getElementById(id);
	if(searchBox == undefined) { return; }
	searchBox.style.display="none";
}

function minMax(id,minImg,maxImg) {

	showHide(id);
	var imgId = "img"+id;
	
	var searchBox = document.getElementById(id);
	var img = document.getElementById(imgId);
	if(searchBox.style.display=="none") {
		img.src=maxImg;
	} else {
		img.src=minImg;
	}

}

function updateField(field,value,disp) {
	var searchBox = window.frameElement.ownerDocument.getElementById(field);
	searchBox.value = value;
	var dispBox = window.frameElement.ownerDocument.getElementById("disp_"+field);
	dispBox.value = disp;
	parent.hidePopWin(false);
}

function resizeFrame(width,height) {
//alert(width+":"+height);
	if(width!="same") {
		window.frameElement.style.width = width;
	}
	if(height!="same") {
		window.frameElement.style.height = height;
	}
}


function addTrack(id) {
//	var pickDisp = window.frameElement.ownerDocument.frames["pickDisp"];
	var pickDisp = document.frames["pickDisp"];
	var pickRef = pickDisp.document.getElementById("pickRef");
	pickRef.value = id;
	pickRef.form.submit();

}


function pick_select(id, all) {
	var target = document.getElementById(id+"_selected");
	var source = document.getElementById(id+"_avail");	
	
	var tpos = target.options.length;
	
	
	for(i=0;i<source.options.length;) {
		if(source.options[i].selected || all) {
			target.options[tpos] = new Option(source.options[i].text,source.options[i].value);
			target.options[tpos].selected = true;
			
			tpos++;
		    
			source.options[i] = null;
			i=0;
		} else {
			i++;
		}
	}
	updateSelectHidden(id);
}

function updateSelectHidden(id) {

	var target = document.getElementById(id+"_selected");
	var hidden = document.getElementById(id);
	
	hidden.value = "";
	for(i=0;i<target.options.length;i++) {
		hidden.value = hidden.value + "," +target.options[i].value;
	}

}

function pick_unselect(id, all) {
	var source = document.getElementById(id+"_selected");
	var target = document.getElementById(id+"_avail");	
	
	var tpos = target.options.length;
	
	for(i=0;i<source.options.length;) {
		if(source.options[i].selected || all) {
			target.options[tpos++] = new Option(source.options[i].text,source.options[i].value);
			source.options[i] = null;
			i=0;
		} else {
			i++;
		}
	}
	updateSelectHidden(id);
}

function minimizeWin() 
{
window.resizeTo(100,100);
window.moveTo(screen.width,screen.height);
}

function maximizeWin() 
{
window.resizeTo(screen.width,screen.height);
window.moveTo(0,0);
}

function openWindow(url,name,height,width,xpos,ypos) {
	window.open(url,name,"scrollbars=1,width="+width+",height="+height+",top="+ypos+",left="+xpos);
}

var UniqueID = 314 // Make each link open in a new window 
var newWinOffset = 0 // Position of first pop-up

function PlayerOpen(soundfiledesc,soundfilepath) {
	PlayWin = window.open('',UniqueID,'width=320,height=190,top=' + newWinOffset +',left=0,resizable=0,scrollbars=0,titlebar=0,toolbar=0,menubar=0,status=0,directories=0,personalbar=0');
	PlayWin.focus(); 
	
	var winContent = "<HTML><HEAD><TITLE>" + soundfiledesc + "</TITLE></HEAD><BODY bgcolor='#FF9900'>"; 
	winContent += "<B style='font-size:18px;font-family:Verdana,sans-serif;line-height:1.5'>" + soundfiledesc + "</B>";
	
	winContent += "<OBJECT width='300' height='42'>"; 
	winContent += "<param name='SRC' value='" + soundfilepath + "'>";
	winContent += "<param name='AUTOPLAY' VALUE='true'>"; 
	winContent += "<param name='CONTROLLER' VALUE='true'>";
	winContent += "<param name='BGCOLOR' VALUE='#FF9900'>"; 
	winContent += "<EMBED SRC='" + soundfilepath + "' AUTOSTART='TRUE' LOOP='FALSE' WIDTH='300' HEIGHT='42' CONTROLLER='TRUE' BGCOLOR='#FF9900'></EMBED>";
	winContent += "</OBJECT>"; 
	
	winContent += "<p style='font-size:12px;font-family:Verdana,sans-serif;text-align:center'><a href='" + soundfilepath +"'>Download this file</a> <SPAN style='font-size:10px'>(right-click or Option-click)</SPAN></p>";
	winContent += "<FORM><DIV align='center'><INPUT type='button' value='Close this window' onclick='javascript:window.close();'></DIV></FORM>"; 
	winContent += "</BODY></HTML>"; 
	
	PlayWin.document.write(winContent); 
	PlayWin.document.close(); // "Finalizes" new window 
	UniqueID = UniqueID + 1 // newWinOffset = newWinOffset + 20 // subsequent pop-ups will be this many pixels lower 
} 

function changeActionAndSubmitForm (formName,url) {
	var form = document.getElementById(formName);
	form.action=url; 
	form.submit();
}

function updateFinalAdjustment(input, output, instock, direction) {
	var inputField = document.getElementById(input);
	var outputField = document.getElementById(output);
	
	if (!isNaN(inputField.value)) { 
		if ( inputField.value > 0 ) {		
			if (direction == 'increase') {
				var total = parseInt(instock) + parseInt(inputField.value);
			} else {
				var total = parseInt(instock) - parseInt(inputField.value);
			}
			if (total > 0) {
				outputField.style.color ='black';
			} else {
				outputField.style.color ='red';
			}
		} else {
			var total = "Number must be positive";
			outputField.style.color ='red';	
		}
	} else {
		var total = "Please enter a number";
		outputField.style.color ='red';
	}
	
	outputField.value=total;
	if (outputField.value == 'NaN') { outputField.value = ''; }
}

function printPage() {
    window.print();
}

function embeddedSoundFix() {
	//put this function straight after your embedded sound object
	objects = document.getElementsByTagName('object');
	for (var i = 0; i < objects.length; i++)
	{
		objects[i].outerHTML = objects[i].outerHTML;
	}
}

function addEvent(obj, evType, fn){ 
 if (obj.addEventListener){ 
   obj.addEventListener(evType, fn, false); 
   return true; 
 } else if (obj.attachEvent){ 
   var r = obj.attachEvent('on'+evType, fn); 
   return r; 
 } else { 
   return false; 
 } 
}

function multi_select(id, all) {
	var target = document.getElementById("selected_"+id);
	var source = document.getElementById("avail_"+id);	
	
	var tpos = target.options.length;
	
	
	for(i=0;i<source.options.length;) {
		if(source.options[i].selected || all) {
			target.options[tpos] = new Option(source.options[i].text,source.options[i].value);
			target.options[tpos].selected = true;
			
			tpos++;
		    
			source.options[i] = null;
			i=0;
		} else {
			i++;
		}
	}
	updateMultiSelectHidden(id);
}

function updateMultiSelectHidden(id) {

	var target = document.getElementById("selected_"+id);
	var hidden = document.getElementById(id);
	
	hidden.value = "";
	for(i=0;i<target.options.length;i++) {
		hidden.value = hidden.value + "," +target.options[i].value;
	}

}

function multi_unselect(id, all) {
	var source = document.getElementById("selected_"+id);
	var target = document.getElementById("avail_"+id);	
	
	var tpos = target.options.length;
	
	for(i=0;i<source.options.length;) {
		if(source.options[i].selected || all) {
			target.options[tpos++] = new Option(source.options[i].text,source.options[i].value);
			source.options[i] = null;
			i=0;
		} else {
			i++;
		}
	}
	updateMultiSelectHidden(id);
}


function checkUncheckAll(theElement) {
     var theForm = theElement.form, z = 0;
	 for(z=0; z<theForm.length;z++){
      if(theForm[z].type == 'checkbox' && theForm[z].name != 'checkall'){
	  theForm[z].checked = theElement.checked;
	  }
     }
    }


function Set_Cookie( name, value, expires, path, domain, secure ) {
	// set time, it's in milliseconds
	var today = new Date();
	today.setTime( today.getTime() );
	
	/*
	if the expires variable is set, make the correct 
	expires time, the current script below will set 
	it for x number of days, to make it for hours, 
	delete * 24, for minutes, delete * 60 * 24
	*/
	if ( expires ) {
		expires = expires * 1000 * 60 * 60 * 24;
	}
	var expires_date = new Date( today.getTime() + (expires) );
	
	document.cookie = name + "=" +escape( value ) +
	( ( expires ) ? ";expires=" + expires_date.toGMTString() : "" ) + 
	( ( path ) ? ";path=" + path : "" ) + 
	( ( domain ) ? ";domain=" + domain : "" ) +
	( ( secure ) ? ";secure" : "" );
}

function Get_Cookie( name ) {
		
	var start = document.cookie.indexOf( name + "=" );
	var len = start + name.length + 1;
	if ( ( !start ) &&
	( name != document.cookie.substring( 0, name.length ) ) )
	{
		return null;
	}
	if ( start == -1 ) return null;
	var end = document.cookie.indexOf( ";", len );
	if ( end == -1 ) end = document.cookie.length;
	return unescape( document.cookie.substring( len, end ) );
}

function rowChangeClass(table,cols,row,classname) {
        for(i=0;i<cols;i++) {
                document.getElementById(table+row+"_"+i).className = classname;
        }
}

function showElement(elemid) {
	elem = document.getElementById(elemid);
	try {
		elem.style.display = "table-row";
	} catch(e) {
		elem.style.display = "block";
	}
}

function hideElement(elemid) {
	elem = document.getElementById(elemid);
	elem.style.display = "none";
}

function Switch(obj) {
		
	var el = obj;
	
	if (el == "popularSonggenreBody")
		el = "popularSonggenreFoot";
	else if (el == "popularSonggenreFoot")
		el = "popularSonggenreBody";
	
if (el == "newMembersgenreBody")
		el = "newMembersgenreFoot";
	else if (el == "newMembersgenreFoot")
		el = "newMembersgenreBody";
	
	if (el == "newRecordingsgenreBody")
		el = "newRecordingsgenreFoot";
	else if (el == "newRecordingsgenreFoot")
		el = "newRecordingsgenreBody";
		
		
	
		
		
	 var elB = document.getElementById(el); 
	 		
    if (elB.style.display == "none") {
    try {
        elB.style.display = "table-row"; 
    }catch(e){
		elB.style.display = "block"; 
  	 } 
  	 
  	 
	if (el == "popularSonggenreBody")
		el = "popularSonggenreFoot";
	else if (el == "popularSonggenreFoot")
		el = "popularSonggenreBody";
              
                
if (el == "newRecordingsgenreBody")
		el = "newRecordingsgenreFoot";
	else if (el == "newRecordingsgenreFoot")
		el = "newRecordingsgenreBody"; 
		
	if (el == "newMembersgenreBody")
		el = "newMembersgenreFoot";
	else if (el == "newMembersgenreFoot")
		el = "newMembersgenreBody";
		
	elB = document.getElementById(el);
	elB.style.display = "none"
		 
    } else {
		elB.style.display = "none";   
    }
}

function fillTable(currentPage, textArray)
{
	var table = document.getElementById('songTable');
	var lastRow = table.rows.length;

	for ( tre = 0; tre < lastRow; tre++ )
	{
		if ( lastRow > 0 )
			table.deleteRow(0);
	}
	
	var tbody = document.getElementById('songTable').getElementsByTagName("TBODY")[0];
	var rowNumbers = document.createElement("TR");
	
	var headRow = document.createElement("TD");
	headRow.colSpan = 3;
	
	var linkNumber = 0;
	songStart = 0;
	songEnd = 10;
	
	sumPages = Math.round((arrayLength / 6) + 0.49);
	
	if ( sumPages < 10 )
	{
		songStart = 0;
		songEnd = sumPages;
		linkNumber = songStart;
	}
	
	if ( sumPages > 10 && currentPage > 4 )
	{
		if ( currentPage < (sumPages-4) )
		{
			songStart = currentPage - 5;
			songEnd = currentPage + 5;
			linkNumber = songStart;
		}
		else
		{
			songEnd = sumPages;
			songStart = songEnd - 10;
			linkNumber = songStart;
		}
	}
	
	headRow.className = "headerLinks";
	
	headerDiv = document.createElement("div");
	headerDiv.className = "tableRowPadding";
	

	
	if ( currentPage > 0 )
	{
		arrowBack = document.createElement('a');
		previousPage = 0;
		
		previousPage = currentPage - 1;
		arrowBack.className = "headerLinks";
		
		arrowBack.setAttribute("href", "javascript:fillTable(" + previousPage + ",textArray)" );
		arrowBack.appendChild(document.createTextNode("<"));
		headerDiv.appendChild(arrowBack);
		
	}
/*	else
	{
		arrowBack.className = "headerLinksDisabled";
	}
	*/

	
	for( k = songStart; k < songEnd; k++ )
	{
		headerLink = document.createElement('a');
		
		if ( linkNumber == currentPage )
			headerLink.className = "headerLinksSelected";
		else
			headerLink.className = "headerLinks";
		
		headerLink.setAttribute("href", "javascript:fillTable(" + linkNumber + ",textArray)" );
		headerLinkText = document.createTextNode(linkNumber + 1);
		headerLink.appendChild(headerLinkText);
		headerDiv.appendChild(headerLink);
		
		linkNumber += 1;
	}
	
	if ( currentPage < sumPages - 1 )
	{
		arrowNext = document.createElement('a');
		nextPage = sumPages - 1;
	
		nextPage = currentPage + 1;
		arrowNext.className = "headerLinks";
		
		arrowNext.setAttribute("href", "javascript:fillTable(" + nextPage + ",textArray)" );
		arrowNext.appendChild(document.createTextNode(">"));
		headerDiv.appendChild(arrowNext);
	}
	/*else
	{
		arrowNext.className = "headerLinksDisabled";
	}*/
	
	headRow.appendChild(headerDiv);
	
	rowNumbers.appendChild(headRow);
	tbody.appendChild(rowNumbers);
	
	var beginCount = currentPage * 6;

	for(p = beginCount; p < beginCount + 6; p++)
	{
		if ( p < arrayLength )
		{
			var rowText = document.createElement("TR");
			
			var tdText = document.createElement("TD");
			tdText.setAttribute("width", "47");
			
			if ( (currentPage + 1) * 6 != p + 1 && p < arrayLength - 1)
				tdText.className = "tableBorderBottom";
	
			rowImage = document.createElement('img');
			rowImage.setAttribute("src", textArray[p][0]);
			rowImage.setAttribute("width", 43);
			rowImage.setAttribute("height", 45);
			tdText.appendChild(rowImage);
			rowText.appendChild(tdText);
			
			var tdText1 = document.createElement("TD");

			if ( (currentPage + 1) * 6 != p + 1 && p < arrayLength - 1)
				tdText1.className = "tableBorderBottom";
			
			tdTextTitle = document.createElement("div");
			tdTextTitle.className = "tdTextTitle";
			tdTextTitle.appendChild(document.createTextNode(textArray[p][1]));
			tdText1.appendChild(tdTextTitle);
			
			tdText1AsBy = document.createElement("span");
			tdText1AsBy.className = "purpleText";
			tdText1AsBy.appendChild(document.createTextNode('as by '));
			tdText1.appendChild(tdText1AsBy);
			
			tdTextArtist = document.createElement("span");
			tdTextArtist.className = "tdTextTitle";
			tdTextArtist.appendChild(document.createTextNode(textArray[p][2]));
			tdText1.appendChild(tdTextArtist);
			tdText1.appendChild(document.createElement("br"));			
			
			tdTextAlias = document.createElement("div");
			tdTextAlias.className = "tdTextAlias";
			tdTextAlias.appendChild(document.createTextNode(textArray[p][3]));
			tdText1.appendChild(tdTextAlias);
			
			tdTextDate = document.createElement("div");
			tdTextDate.className = "silverText";
			tdTextDate.appendChild(document.createTextNode(textArray[p][4]));
			tdText1.appendChild(tdTextDate);
			
			rowText.appendChild(tdText1);
			
			var tdText2 = document.createElement("TD");
			
			if ( (currentPage + 1) * 6 != p + 1 && p < arrayLength - 1)
				tdText2.className = "tableBorderBottom";

			rowLink = document.createElement("A");
			rowLink.setAttribute("href", textArray[p][5]);
			rowImage = document.createElement('img');
			rowImage.setAttribute("src", "/style/default/images/listen_to_recording.gif");
			rowImage.setAttribute("border", "0");
			rowImage.className = "munemcukam";
			rowLink.appendChild(rowImage);
			
			tdText2.appendChild(rowLink);
			rowText.appendChild(tdText2);
			
			tbody.appendChild(rowText);
		}
	}
}


var MAX_DUMP_DEPTH = 10;

      

       function dumpObj(obj, name, indent, depth) {

              if (depth > MAX_DUMP_DEPTH) {

                     return indent + name + ': <Maximum Depth Reached>\\n';

              }

              if (typeof obj == 'object') {

                     var child = null;

                     var output = indent + name + '\\n';

                     indent += '\\t';

                     for (var item in obj)

                     {

                           try {

                                  child = obj[item];

                           } catch (e) {

                                  child = '<Unable to Evaluate>';

                           }

                           if (typeof child == 'object') {

                                  output += dumpObj(child, item, indent, depth + 1);

                           } else {

                                  output += indent + item + ': ' + child + '\\n';

                           }

                     }

                     return output;

              } else {

                     return obj;

              }

       }

