var registered_images = new Array();
var image_index = new Array();
var imagecounter = 0;
var currentaid = 0;
var edit = 0;

var divName = 'pDiv'; // preview image

var offX = 15;          // X offset
var offY = 15;          // Y offset 


var previewcounter = 0;

document.onmousemove = follow;

function mouseX(evt){
	if (!evt){
		evt = window.event;
	}
	if (evt.pageX){
		//alert( evt.pageX );
	 	return evt.pageX;
	}
	else if (evt.clientX){
	 	return evt.clientX + (document.documentElement.scrollLeft ?  document.documentElement.scrollLeft : document.body.scrollLeft);
	}
	else{
		return 0;
	}
}

function mouseY(evt) {
	if (!evt){
		evt = window.event;
	}
	if (evt.pageY){
		return evt.pageY;
	}
	else if (evt.clientY){
		return evt.clientY + (document.documentElement.scrollTop ? document.documentElement.scrollTop : document.body.scrollTop);
	}
	else{
		return 0;
	}
}

function follow(evt) {
	if (document.getElementById) {
		ww =  document.documentElement.offsetWidth;
		mousexset = ( (ww - 1000)/2 ) ;
		if( document.getElementById(divName) ){
			var obj = document.getElementById(divName).style;
			// obj.visibility = 'visible';
			obj.left = (parseInt(mouseX(evt))- mousexset ) + 'px';
			obj.top = (parseInt(mouseY(evt))+offY) + 'px';
		}
	}
}


function setTopBannerYOffset( newoffsety ) {
   
   offY = parseInt( newoffsety );
   
}


function startPreviewTimeout( bid ){
	previewcounter++;
	setTimeout( 'showPreviewDiv(' + bid + ', '  + previewcounter + ')', 1000 );
}

function showPreviewDiv( bid, pcounter ){
	if( previewcounter == pcounter  ){
		document.getElementById( 'pDiv' ).style.visibility = 'visible';
		document.getElementById( 'pDiv' ).style.display = 'block';
		image = document.getElementById( 'pImage' );
		image.src = "show_image_stream.php?bid=" + bid + "&dx=300";
	}
}

function hidePreviewDiv(){
	previewcounter++;
	document.getElementById( 'pDiv' ).style.visibility = 'hidden';
	document.getElementById( 'pDiv' ).style.display = 'none';
	image = document.getElementById( 'pImage' );
	image.src = "layout_grafikk/loading.gif";
}

function addToSelectedImages( imageid ){
	temp = imageid.split('_');
	//alert( temp[1] );
	alter_status( temp[1] );
}

function director(){
	setTimeout('loadUnloaded();',100);
}

function change_album(){
	form_element = document.getElementById('album_select');
	document.location.href = 'show_album.php?aid='+form_element.value;
}

function register_image(bid){
	registered_images[bid] = -1;
	image_index[imagecounter] = bid;
	imagecounter++;
}

function register_aid(aid){
	currentaid = aid;
}

function loadUnloaded(){
	loaded = 0;
	cutoff = 32;
	changed = 0;
	for(i=0;i<imagecounter;i++){
		if(changed == cutoff){
			break;
		}
		bid = image_index[i];
		if(registered_images[bid] == 99){
			loaded++;
			continue;
		}
		else if(registered_images[bid] == -1 || registered_images[bid] == 5){
			thumbnail = document.getElementById('thumb_'+bid);
			registered_images[bid] = 0;
			if(thumbnail.src.indexOf('waiting') != -1){
				thumbnail.src = 'stream_thumbnail.php?bid='+bid+'&dx='+thumbnail.width+'&dy='+thumbnail.height+'&force=1';
			}
			changed++;
		}
		else if(registered_images[bid] == 0){
			registered_images[bid] ++;
		}
	}
	if(loaded != imagecounter){
		setTimeout('loadUnloaded();',500);
	}
}

function registerload(bid){
	if(registered_images[bid] == -1){
	}
	if(registered_images[bid] == 0){
		registered_images[bid] = 99;
	}
}

function alter_status(bid){
	bidimage = document.getElementById('thumb_'+bid);
	check = document.getElementById('check_'+bid);
	imagex = parseInt(bidimage.style.left);
	imagey = parseInt(bidimage.style.top);
	if(check.checked){
		bidimage.style.background = "lightblue";
		//bidimage.style.top = imagey - 2;
		//bidimage.style.left = imagex - 2;
		setTimeout('update_selection('+bid+',1,0)',50);
	}
	else{
		bidimage.style.background = "#fff";
		//bidimage.style.top = imagey + 2;
		//bidimage.style.left = imagex + 2;
		setTimeout('update_selection('+bid+',2,0)',50);
	}
}

function update_selection(b,s,all){
	imageNew = new Image();
	if(all > 0){
		imageNew.src='alter_selected_image_status.php?aid='+currentaid+'&status='+s;
	}
	else{
		imageNew.src='alter_selected_image_status.php?bid='+b+'&status='+s;
	}
	alter_image = document.getElementById('alter_status_'+b);
	alter_image.src = imageNew.src;
}

function select_all(){
	for(i=0;i<imagecounter;i++){
		bid = image_index[i];
		bidimage = document.getElementById('thumb_'+bid);
		check = document.getElementById('check_'+bid);
		if(check.checked == true){
			continue;
		}
		check.checked = true;
		imagex = parseInt(bidimage.style.left);
		imagey = parseInt(bidimage.style.top);
		bidimage.style.background = "lightblue";
		//bidimage.style.top = imagey - 2;
		//bidimage.style.left = imagex - 2;
	}
	setTimeout('update_selection('+image_index[0]+',1,1)',50);
}

function deselect_all(){
	for(i=0;i<imagecounter;i++){
		bid = image_index[i];
		bidimage = document.getElementById('thumb_'+bid);
		check = document.getElementById('check_'+bid);
		if(check.checked == false){
			continue;
		}
		check.checked = false;
		imagex = parseInt(bidimage.style.left);
		imagey = parseInt(bidimage.style.top);
		bidimage.style.background = "#fff";
		//bidimage.style.top = imagey + 2;
		//bidimage.style.left = imagex + 2;
	}
	setTimeout('update_selection('+image_index[0]+',2,1)',50);
}




/* Replaces image name with an input box */
function editImageName( bid ){
	if( edit == 1 ){
		return;
	}
	else if( edit == 0 ){
		edit = 1;
		//document.getElementById( 'editImageButton_' + bid ).style.visibility = 'hidden';
		document.getElementById( 'check_' + bid ).style.visibility = 'hidden';
		tmpname = document.getElementById( 'nameDiv_' + bid ).innerHTML;
		document.getElementById( 'nameDiv_' + bid ).onclick = "";
		ret =	"<div style=\"position: absolute; top: 120px; left: 12px; \">\n" + 
			"	<form action=\"javascript: changeImageName( " + bid + " );\">" + 
			"	<input id=\"changeImage_" + bid +"\" style=\"width: 130px; border: 2px dotted #4697dd;\" >" + tmpname +"</input>\n" +
			"	<input type=\"image\" name=\"submit\" src=\"layout_grafikk/pixblank.gif\" style=\"visibility: hidden;\"></input>\n" +
			"	<a href=\"javascript:changeImageName( " + bid + " );\" style=\"position: absolute; top: 23px; left: 55px; text-decoration: none;\"><img src=\"skin_image/default/en/bluebutton_select.gif\" border=\"0\"></a>\n" +
			"	<a href=\"javascript: cancelEditImageName( " + bid + " );\" style=\"position: absolute; top: 23px; left: 85px; text-decoration: none;\"><img src=\"skin_image/default/en/bluebutton_deselect.gif\" border=\"0\"></a>\n" +
			"	</form>" +
			"</div>\n";
			
			document.getElementById( 'nameDiv_' + bid ). innerHTML = ret;
			
			par = [ "bid=" + bid ];
			new efAJAX( 'loadImageName', 'changeImage_' + bid, par );
			
			document.getElementById( 'changeImage_' + bid ).focus();
			document.getElementById( 'changeImage_' + bid ).select();
	}
}

/* AJAXes  :)  the new image name */
function changeImageName( bid ){
	par = [ "bid=" + bid, "newtitle=" + $F( 'changeImage_' + bid ), "length=17"  ];
	new efAJAX( 'changeImageNameReturnShorter', 'nameDiv_' + bid, par, 'innerhtml' );	
	edit = 0;
	//document.getElementById( 'editImageButton_' + bid ).style.visibility = 'visible';
	document.getElementById( 'check_' + bid ).style.visibility = 'visible';
}

/* 	Cancels th editing of image name and replaces the iput
	box with the name string 
*/
function cancelEditImageName( bid ){
	edit = 0;
	par = [ "bid=" + bid, "length=17"  ];
	new efAJAX( 'loadImageNameShorterHTML', 'nameDiv_' + bid, par, 'innerhtml' );
	//document.getElementById( 'editImageButton_' + bid ).style.visibility = 'visible';
	document.getElementById( 'check_' + bid ).style.visibility = 'visible';
}


/* Editable  album description through AJAX . Rplaces text with textarea and buttons */
function editAlbumDescription( aid ){
	//tmpdesc = document.getElementById( 'albumDescription' ).innerHTML;
	//document.getElementById( 'albumDescriptionDiv' ).onclick = "";
	ret =	"<div style=\"position: relative; margin-bottom: 30px;\">\n" + 
			"	<form>" + 
			"	<textarea id=\"descriptionTextArea\" style=\"width: 580px; height: 100px; border: 2px dotted #4697dd; z-index: 10;\" ></textarea>\n" +
			"	<input type=\"image\" name=\"submit\" src=\"layout_grafikk/pixblank.gif\" style=\"visibility: hidden;\"></input>\n" +
			"	<a href=\"javascript:changeAlbumDescription( " + aid + " );\" style=\"position: absolute; top: 110px; left: 530px; text-decoration: none;\"><img src=\"skin_image/default/en/bluebutton_select.gif\" border=\"0\"></a>\n" +
			"	<a href=\"javascript: cancelEditAlbumDescription( " + aid + " );\" style=\"position: absolute; top: 110px; left: 560px; text-decoration: none;\"><img src=\"skin_image/default/en/bluebutton_deselect.gif\" border=\"0\"></a>\n" +
			"	</form>" +
			"</div>\n";
			
	document.getElementById( 'albumDescriptionDiv' ).innerHTML = ret;
	par = [ "aid=" + aid, "edit=1" ];
	new efAJAX( 'loadAlbumDescription', 'descriptionTextArea', par );
	document.getElementById( 'descriptionTextArea' ).focus();
	document.getElementById( 'descriptionTextArea' ).select();
	
}

/* Makes the Ajax call to update album description */
function changeAlbumDescription( aid ){
	par = [ "aid=" + aid, "newdesc=" + $F( 'descriptionTextArea' ) ];
	new efAJAX( 'changeAlbumDescription', 'albumDescriptionDiv', par, 'innerhtml' );
	//document.getElementById( 'albumDescriptionDiv' ).onclick = "javascript:editAlbumDescription( " + aid + " );";
	//document.getElementById( 'editAlbumDescriptionButton' ).style.visibility = 'visible';
}
/* Cancels the texarea and replaces it with text only */
function cancelEditAlbumDescription( aid ){
	par = [ "aid=" + aid ];
	new efAJAX( 'loadAlbumDescription', 'albumDescriptionDiv', par, 'innerhtml' );
}


/* Displays input text instead of only text so we can change album name */
function editAlbumName( aid ){
	//document.getElementById( 'editAlbumNameButton' ).style.visibility = 'hidden';
	//document.getElementById( 'albumName' ).onclick = "";
	//tmpname = document.getElementById( 'albumName' ).onclick = "";
	ret =	"<div style=\"position: relative; margin-bottom: 60px;\">\n" + 
		"	<form action=\"javascript: changeAlbumName( " + aid + " );\">" + 
		"	<input id=\"changeAlbum\" style=\"width: 580px; border: 2px dotted #4697dd;\"></input>\n" +
		"	<input type=\"image\" name=\"submit\" src=\"layout_grafikk/pixblank.gif\" style=\"visibility: hidden;\"></input>\n" +
		"	<a href=\"javascript:changeAlbumName( " + aid + " );\" style=\"position: absolute; top: 23px; left: 530px; text-decoration: none;\"><img src=\"skin_image/default/en/bluebutton_select.gif\" border=\"0\"></a>\n" +
		"	<a href=\"javascript: cancelEditAlbumName( " + aid + " );\" style=\"position: absolute; top: 23px; left:560px; text-decoration: none;\"><img src=\"skin_image/default/en/bluebutton_deselect.gif\" border=\"0\"></a>\n" +
		"	</form>" +
		"</div>\n";
			
	document.getElementById( 'albumName' ). innerHTML = ret;
	
	par = [ "aid=" + aid, "edit=1" ];
	new efAJAX( 'loadAlbumName', 'changeAlbum', par );
	document.getElementById( 'changeAlbum' ).focus();
	document.getElementById( 'changeAlbum' ).select();
}

function changeAlbumName( aid ){
	par = [ "aid=" + aid, "newname=" + $F( 'changeAlbum' ) ];
	new efAJAX( 'changeAlbumName', 'albumName', par, 'innerhtml' );	
	//document.getElementById( 'editAlbumNameButton' ).style.visibility = 'visible';
}

function cancelEditAlbumName( aid ){
	par = [ "aid=" + aid ];
	new efAJAX( 'loadAlbumName', 'albumName', par, 'innerhtml' );
	//document.getElementById( 'editAlbumNameButton' ).style.visibility = 'visible';
}
function addtext(newtext) {
	//alert(newtext)
	newtext = newtext + " ";
	document.propertiesform.tag.value += newtext;
}
function checkIt(evt) {
    evt = (evt) ? evt : window.event
    var charCode = (evt.which) ? evt.which : evt.keyCode
    if (charCode > 31 && (charCode < 48 || charCode > 57)) {
        status = "Du kan kun skrive tall her."
        return false
    }
    status = ""
    return true
}
