//
// Global variable
//
var allPhoto   = new Array();
var allPhotoID = new Array();
var totalSet;
var count      = 0;

//
// Separate the array
//
function initGallery(photoId){
	var totalPhoto = allThumb.length;
	totalSet       = Math.round(totalPhoto / nRows);
	var plusOne    = false;
	
	if(totalSet < 1){
		allPhoto[0]   = new Array();
		allPhotoID[0] = new Array();
		
		for(i=0; i < allThumb.length; i++){
			allPhoto[0][i]   = allThumb[i];
			allPhotoID[0][i] = allPhotoId[i];
		}
	}
	else{
		num = 0;	
			
		for(h=0; h < totalSet; h++){
			allPhoto[h]   = new Array();
			allPhotoID[h] = new Array();
			
			if(h == (totalSet-1)){
				nloop = totalPhoto - (num);
			}
			else{
				nloop = nRows;
			}
			
			if(nloop > 6){
				for(i=0; i < nRows; i++){
					allPhoto[h][i]   = allThumb[num];
					allPhotoID[h][i] = allPhotoId[num];
					
					if(allPhotoID[h][i] == photoId){
						count = h;
					}
					
					num++;
				}
				
				allPhoto[h+1]   = new Array();
				allPhotoID[h+1] = new Array();
				
				for(i=0; i < (nloop - nRows); i++){
					allPhoto[h+1][i]   = allThumb[num];
					allPhotoID[h+1][i] = allPhotoId[num];
					
					if(allPhotoID[h][i] == photoId){
						count = h+1;
					}
					
					num++;
				}
				
				plusOne = true;
			}
			else{
				for(i=0; i < nloop; i++){
					allPhoto[h][i]   = allThumb[num];
					allPhotoID[h][i] = allPhotoId[num];
					
					if(allPhotoID[h][i] == photoId){
						count = h;
					}
					
					num++;
				}
			}
		}
	}
	
	if(plusOne){
		totalSet++;
	}	
	
	//
	// Create Gallery
	//
	createGallery();
}

function createGallery(){
	var bufferHTML  = new Array();
  var bufferCount = 0;
  var columnCount = 0;
	
	bufferHTML[bufferCount++] = "<table width=\"250\" height=\"350\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\">";
	
	for(idx = 0; idx < allPhoto[count].length; idx++){
		
		if(columnCount == 0){
			bufferHTML[bufferCount++] = "<tr>";
		}
		
		bufferHTML[bufferCount++] = "<td align=\"center\">";
		
		if(allPhotoId[idx] != undefined){
			bufferHTML[bufferCount++] = "<div class=\"div_photo\">";
		  bufferHTML[bufferCount++] = "<table class=\"box_photo\">";
		  bufferHTML[bufferCount++] = "<tr>";
		  bufferHTML[bufferCount++] = "<td>";
		  bufferHTML[bufferCount++] = "<a href=\""+_url+"?m=photo2&c=shw_frm_gallery&photo_id="+allPhotoID[count][idx]+"&total="+totalPhoto+"\" class=\"menu\"><img src=\""+allPhoto[count][idx]+"\" border=0></a>";
		  bufferHTML[bufferCount++] = "</td>";
		  bufferHTML[bufferCount++] = "</tr>";
		  bufferHTML[bufferCount++] = "</table>";
			bufferHTML[bufferCount++] = "</div>";
		}

		bufferHTML[bufferCount++] = "</td>";
		
		columnCount++;
		
		if(columnCount == nColumn){
			bufferHTML[bufferCount++] = "</tr>";
			columnCount = 0;
		}
	}
	
	bufferHTML[bufferCount++] = "</table>";
	
	$('gallery_box').innerHTML = "";
	$('gallery_box').innerHTML = bufferHTML.join("");
}

function scrollDown(){
	
	if(count >= totalSet){
		return;
	}
	
	if(count < (totalSet-1)){
		count++;
	}
	
	createGallery();
}

function scrollUp(){
	
	var bufferHTML  = new Array();
  var bufferCount = 0;
  var columnCount = 0;
  
	if(count <= 0){
		return;
	}
	
	if(count > 0){
		count--;
	}
	
	createGallery();
}


function scrollDown2(){
	
	var totalPhoto  = allThumb.length;
	var totalRows   = idx + nRows;
	
	if(totalRows > totalPhoto){
		totalRows = totalPhoto;
	}
	
	var nColumn     = 2;
	var bufferHTML  = new Array();
  var bufferCount = 0;
  var columnCount = 0;  
	alert(idx+" - "+totalRows);
	
	if(idx >= totalPhoto){
		return;
	}
	
	bufferHTML[bufferCount++] = "<table width=\"250\" height=\"350\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\">";
	
	for(idx; idx < totalRows; idx++){
		
		if(columnCount == 0){
			bufferHTML[bufferCount++] = "<tr>";
		}
		
		bufferHTML[bufferCount++] = "<td align=\"center\">";
		
		if(allPhotoId[idx] != undefined){
			bufferHTML[bufferCount++] = "<div class=\"div_photo\">";
		  bufferHTML[bufferCount++] = "<table class=\"box_photo\">";
		  bufferHTML[bufferCount++] = "<tr>";
		  bufferHTML[bufferCount++] = "<td>";
		  bufferHTML[bufferCount++] = "<a href=\""+_url+"?m=photo2&c=shw_frm_gallery&photo_id="+allPhotoId[idx]+"&total="+totalPhoto+"\" class=\"menu\"><img src=\""+allThumb[idx]+"\" border=0></a>";
		  bufferHTML[bufferCount++] = "</td>";
		  bufferHTML[bufferCount++] = "</tr>";
		  bufferHTML[bufferCount++] = "</table>";
			bufferHTML[bufferCount++] = "</div>";
		}

		bufferHTML[bufferCount++] = "</td>";
		
		columnCount++;
		
		if(columnCount == nColumn){
			bufferHTML[bufferCount++] = "</tr>";
			columnCount = 0;
		}
	}
	if(idx < totalPhoto){
		idx++;
	}
	
	bufferHTML[bufferCount++] = "</table>";
	
	$('gallery_box').innerHTML = "";
	$('gallery_box').innerHTML = bufferHTML.join("");
}

function scrollUp2(){
	var totalPhoto  = allThumb.length;
	var totalRows   = idx - nRows;
	
	var nColumn     = 2;
	var bufferHTML  = new Array();
  var bufferCount = 0;
  var columnCount = 0;  
	alert(idx+" - "+totalRows);
	
	if(idx <= 0){
		return;
	}
	
	bufferHTML[bufferCount++] = "<table width=\"250\" height=\"350\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\">";
	
	for(idx; idx > totalRows; idx--){
		
		if(columnCount == 0){
			bufferHTML[bufferCount++] = "<tr>";
		}
		
		bufferHTML[bufferCount++] = "<td align=\"center\">";
		
		if(allPhotoId[idx] != undefined){
			bufferHTML[bufferCount++] = "<div class=\"div_photo\">";
		  bufferHTML[bufferCount++] = "<table class=\"box_photo\">";
		  bufferHTML[bufferCount++] = "<tr>";
		  bufferHTML[bufferCount++] = "<td>";
		  bufferHTML[bufferCount++] = "<a href=\""+_url+"?m=photo2&c=shw_frm_gallery&photo_id="+allPhotoId[idx]+"&total="+totalPhoto+"\" class=\"menu\"><img src=\""+allThumb[idx]+"\" border=0></a>";
		  bufferHTML[bufferCount++] = "</td>";
		  bufferHTML[bufferCount++] = "</tr>";
		  bufferHTML[bufferCount++] = "</table>";
			bufferHTML[bufferCount++] = "</div>";
		}

		bufferHTML[bufferCount++] = "</td>";
		
		columnCount++;
		
		if(columnCount == nColumn){
			bufferHTML[bufferCount++] = "</tr>";
			columnCount = 0;
		}
	}
	idx--;
	bufferHTML[bufferCount++] = "</table>";
	
	$('gallery_box').innerHTML = "";
	$('gallery_box').innerHTML = bufferHTML.join("");
}

function switchMenu(from,to){
	from.style.display = 'none';
	to.style.display   = 'inline';
}

function delAlbum(albumId){
	if(confirmSubmit() == true){
		window.location.href = _url+"?m=photo2&c=del_album&album_id="+albumId;
	}
}

function delComment(photoId, comId, totalPhoto){
	if(confirmSubmit() == true){
		window.location.href = _url+"?m=photo2&c=del_comment&photo_id="+photoId+"&com_id="+comId+"&total="+totalPhoto;
	}
}

function selAlbum(){
	var box   = document.forms['upload_form'].album_id;
	var album = box.options[box.selectedIndex].value;
	
	if(album == 'new'){
		$('title').style.visibility = "visible";;
	}
	else{
		$('title').style.visibility = "hidden";;
	}
}

var row_count_file = "1";
var row_count_url  = "1";

function switchUploadMethod(radioObj){
	$('container').innerHTML = "";
	
	if(getCheckedValue(radioObj) == 'grab'){
		row_count_url  = "1";
		$('container').innerHTML = $('url').innerHTML;
	}
	else{
		row_count_file = "1";
		$('container').innerHTML = $('file').innerHTML;
	}
}

function addMoreUpload(radioObj){
	
	if(getCheckedValue(radioObj) == 'grab'){
		if(row_count_url > 9){
			return;
		}
		
		var tbody = $('tbl_grab').getElementsByTagName("TBODY")[0];
	  var row   = document.createElement("TR");// create row
	  
	  var td1 = document.createElement("TD");
	  td1.innerHTML = (parseInt(row_count_url) + 1) + ".";
	  
	  var td2 = document.createElement("TD");
	  var strHtml2  = "<input name=\"file[]\" type=\"text\" value=\"http://\" size=\"55\">";
	  td2.innerHTML = strHtml2.replace(/!row_count_url!/g,row_count_url);
	  
	  // append data to row
	  row.appendChild(td1);
	  row.appendChild(td2);
	  
	  // add to row_count variable
	  row_count_url = parseInt(row_count_url) + 1;
	  
	  // append row to table
	  tbody.appendChild(row);
	}
	else{
		if(row_count_file > 9){
			return;
		}
		
		var tbody = $('tbl_upload').getElementsByTagName("TBODY")[0];
	  var row   = document.createElement("TR");// create row
	  
	  var td1 = document.createElement("TD");
	  td1.innerHTML = (parseInt(row_count_file) + 1) + ".";
	  
	  var td2 = document.createElement("TD");
	  //var btn_del   = vir_photo_icon + "btn_del.gif";
	  var strHtml2  = "<input type=\"file\" name=\"file[]\" size=\"40\" />";
	  //var strHtml2  = "<input type=\"file\" name=\"file[]\" size=\"40\" />&nbsp;<a href=\"javascript:void(0)\" onclick=\"delUpload()\"><img src=\""+btn_del+"\" border=\"0\"></a>";
	  td2.innerHTML = strHtml2.replace(/!row_count_file!/g,row_count_file);
	  
	  // append data to row
	  row.appendChild(td1);
	  row.appendChild(td2);
	  
	  // add to row_count variable
	  row_count_file = parseInt(row_count_file) + 1;
	  
	  // append row to table
	  tbody.appendChild(row);
	}  
}

function delUpload(){
	var current = window.event ? window.event.srcElement : event.target; 
  
  //here we will delete the line
  while ( (current = current.parentElement)  && current.tagName !="TR");
       current.parentElement.removeChild(current);
}

function getCheckedValue(radioObj) {
	if(!radioObj)
		return "";
	var radioLength = radioObj.length;
	if(radioLength == undefined)
		if(radioObj.checked)
			return radioObj.value;
		else
			return "";
	for(var i = 0; i < radioLength; i++) {
		if(radioObj[i].checked) {
			return radioObj[i].value;
		}
	}
	return "";
}

function checkComment(){
	var comment = document.form_post.comment;
	var tmpStr = comment.value.toLowerCase();
	var strLen = tmpStr.length;

	if(comment.value == ""){
		alert(err_empty_comment);
		return false;
	}
	else if(strLen > 160){
		alert(err_max_comment);
		return false;
	}
	
	return true;
}

function checkEdtAlbum(){
	var photo_id = document.forms['form_edit'].elements['photo_id[]'];
	//alert(photo_id.value);
	if(photo_id == null){
		return false;
	}
	
	return true;
}

function addAlbum(elemt){
	var abTitle  = $('title').value;
	var abAccess = getCheckedValue(elemt);
	
	if(abTitle == ""){
		shwErr('err', err_title);
		return;
	}

	var _data = "m=photo2&c=add_album_ajax&title="+abTitle+"&access="+abAccess+"&rn="+Math.floor(Math.random()*100000);
	httpRequest("POST",_url,true,res_addAlbum,_data);
}

function edtAlbum(albumId, elemt){
	var abTitle  = $('title').value;
	var abAccess = getCheckedValue(elemt);
	
	if(abTitle == ""){
		shwErr('err', err_title);
		return;
	}

	var _data = "m=photo2&c=edt_album_ajax&album_id="+albumId+"&title="+abTitle+"&access="+abAccess+"&rn="+Math.floor(Math.random()*100000);
	httpRequest("POST",_url,true,res_addAlbum,_data);
}

function edtPhoto(){
	var photo_obj = document.forms['edt_photo_form'].elements['photo_id'];
	var photo_id  = new Array(); 

	if(photo_obj.length == undefined){
		photo_id.push(photo_obj.value);
	}
	else{
		for(var i = 0; i < photo_obj.length; i++) {
			photo_id.push(photo_obj[i].value);
		}
	}
	
	var album_obj = document.forms['edt_photo_form'].elements['album_id'];
	var album_id  = new Array(); 
	
	if(photo_obj.length == undefined){
		album_id.push(album_obj.options[album_obj.selectedIndex].value);
	}
	else{
		for(var i = 0; i < album_obj.length; i++) {
			album_id.push(album_obj[i].value);
		}
	}

	var caption_obj = document.forms['edt_photo_form'].elements['caption'];
	var caption     = new Array(); 
	
	if(caption_obj.length == undefined){
		if(caption_obj.value == ''){
			shwErr('err', 'Please fill in photo caption.');
			return;
		}
		
		caption.push(caption_obj.value);
	}
	else{
		for(var i = 0; i < caption_obj.length; i++) {
			if(caption_obj[i].value == ''){
				shwErr('err', 'Please fill in photo caption.');
				return;
			}
			
			caption.push(caption_obj[i].value);
		}
	}
	
	//caption = encodeURIComponent(caption);
	var _data = "m=photo2&c=edt_photo_ajax&photo_id="+photo_id+"&album_id="+album_id+"&caption="+caption+"&rn="+Math.floor(Math.random()*100000);
	httpRequest("POST",_url,true,res_addAlbum,_data);
}

function edtPostPhoto(){
	var photo_obj = document.forms['edt_photo_form'].elements['photo_id'];
	var photo_id  = new Array(); 
	
	if(photo_obj.length == undefined){
		photo_id.push(photo_obj.value);
	}
	else{
		for(var i = 0; i < photo_obj.length; i++) {
			photo_id.push(photo_obj[i].value);
		}
	}
	
	var caption_obj = document.forms['edt_photo_form'].elements['caption'];
	var caption     = new Array(); 
	
	if(caption_obj.length == undefined){
		if(caption_obj.value == ''){
			shwErr('err', 'Please fill in photo caption.');
			return;
		}
		
		caption.push(caption_obj.value);
	}
	else{
		for(var i = 0; i < caption_obj.length; i++) {
			if(caption_obj[i].value == ''){
				shwErr('err', 'Please fill in photo caption.');
				return;
			}
			
			caption.push(caption_obj[i].value);
		}
	}

	var _data = "m=photo2&c=edt_photo_ajax&photo_id="+photo_id+"&caption="+caption+"&rn="+Math.floor(Math.random()*100000);
	httpRequest("POST",_url,true,res_addAlbum,_data);
}

function setHeadshot(photo_id){
	var _data = "m=photo2&c=set_headshot_ajax&photo_id="+photo_id+"&rn="+Math.floor(Math.random()*100000);
	httpRequest("POST",_url,true,res_done,_data);
}

function res_addAlbum(){
  if(request.readyState == 4){
    if(request.status == 200){
    	//alert(request.responseText);
    	var response = eval('(' + request.responseText + ')');
			
			if(response['res'] == true){				
				$('do_add').style.display      = "none";
				$('success_add').style.display = "inline";
			}
			else{
				shwErr(response['res'],response['msg']);
			}
    }
    else{
    	shwErr('err_comm');
    }
  }
}

function res_done(){
  if(request.readyState == 4){
    if(request.status == 200){
    	//alert(request.responseText);
    	var response = eval('(' + request.responseText + ')');
			
			if(response['res'] == true){				
				alert(response['msg']);
				
				$('headshot').innerHTML = "Headshot | ";
			}
			else{
				shwErr(response['res'],response['msg']);
			}
    }
    else{
    	shwErr('err_comm');
    }
  }
}

function res_general(){
  if(request.readyState == 4){
    if(request.status == 200){
    	//alert(request.responseText);
    	var response = eval('(' + request.responseText + ')');
			
			if(response['res'] == true){				
				alert(response['msg']);
				
				if(response['redirect'] != ""){
					window.location.href = response['redirect']; // Redirect
				}
				else{
					window.location.href = window.location.href; // Refresh
				}
			}
			else{
				shwErr(response['res'],response['msg']);
			}
    }
    else{
    	shwErr('err_comm');
    }
  }
}

function shwErr(errCode){
	if(errCode == 'err_comm'){
		alert("A problem occurred with communicating between "+
          "the XMLHttpRequest object and the server program.");
	}
	else if(errCode == 'err_auth'){
		alert(arguments[1]);
		parent.location.href = _url+"?m=account&c=show_login";
	}
	else if(errCode == 'err'){
		alert(arguments[1]);
	}
}