var itemnum = 0;
var selItemArray = new Array();

function initialize(num,idarray) {

	itemnum = num;
	leng = idarray.length;
	for(var i=0; i < leng; i++) {
		selectItem(idarray[i]);
	}
	$('selno').innerHTML = '現在 ' + itemnum + '個選択されています。';
}
	
function check(id) {

	if($('ck_'+id).checked == true) {

		$('ck_' +id).checked = false;
		$('tr_' +id).className = '';
		if(itemnum != 0) { itemnum--; }
		removeItem(id);
		$('selno').innerHTML = '現在 ' + itemnum + '個選択されています。';

	} else {

//		if(itemnum >= 8) { alert('選択できるのは8個までです。'); return false; }
		$('ck_' +id).checked = true;
		$('tr_' +id).className = 'select';
		itemnum++;
		selectItem(id);
		$('selno').innerHTML = '現在 ' + itemnum + '個選択されています。';
	}
}

function check2(id) {

	id = id.replace(/ck_/,'');
	if($('ck_'+id).checked == false) {

		$('tr_' +id).className = '';
		if(itemnum != 0) { itemnum--; }
		removeItem(id);
		$('selno').innerHTML = '現在 ' + itemnum + '個選択されています。';

	} else {

//		if(itemnum >= 8) { alert('選択できるのは8個までです。'); return false; }
		$('tr_' +id).className = 'select';
		itemnum++;
		selectItem(id);
		$('selno').innerHTML = '現在 ' + itemnum + '個選択されています。';
	}
}

function selectItem(id) {

	var regdate = $('date_'+id).childNodes[0].nodeValue;

	selItemArray[id] = regdate;
	selItemArray = sortObj(selItemArray,false,true,true);

	hash = $H(selItemArray);
	keys = hash.keys();
	len = keys.length;
	$('authbox').innerHTML = '';
	
	for(var i=0;i < len;i++) {
	
		id = keys[i];
		var divObj = document.createElement("div");
		var spnObj = document.createElement("span");
		var text = document.createTextNode($('title_'+id).childNodes[0].nodeValue);
		var imgObj = document.createElement("img");
	
		dstyle = divObj.style;
		
		dstyle.width = "170px";
		dstyle.height = "160px";
		dstyle.margin = "10px";
		dstyle.styleFloat = 'left';
		dstyle.textAlign = 'center';
		
		istyle = imgObj.style;
		
		istyle.display = 'block';
		istyle.margin = '0 auto 0 auto';
	
		imgObj.src = $('img_'+id).src;
		imgObj.width = "160";
		imgObj.height = "120";
		imgObj.id = 'sel_' + id;
	
		imgObj.setAttribute("alt","クリックすると解除します。");
		imgObj.onclick = function() {
			var id = this.id.replace(/sel_/,'');
			$('ck_' +id).checked = false;
			$('tr_' +id).className = '';
			if(itemnum != 0) { itemnum--; }
			removeItem(id);
			$('selno').innerHTML = '現在 ' + itemnum + '個選択されています。';
		}
	
		spnObj.appendChild(text);
		divObj.appendChild(imgObj);
		divObj.appendChild(spnObj);
		
		$('authbox').appendChild(divObj);
		
	}

}

function removeItem(id) {

	var authbox = $('authbox');
	var newArray = new Array();
	selItemArray = sortObj(selItemArray,false,true,true);
	hash = $H(selItemArray);
	keys = hash.keys();
	var ary_length = keys.length;
	for(var j=0; j < ary_length; j++) {
	
		if(keys[j] == id) {
			var rem = j;
		}
	}
	authbox.removeChild(authbox.childNodes[rem]);
	for(var i=0;i < ary_length;i++) {
		if(keys[i] != id) {
			newArray[keys[i]] = selItemArray[keys[i]];
		}
		
	}
	selItemArray = newArray;
}

function inputCheck(frmObj) {

	var ele = frmObj.elements;
	var len = ele.length;
	var error = '';
	var val = '';

	for(var i=0;i < len;i++) {
		if(ele[i].type == 'file') {
			if(ele[i].value != '') {
				val++;
			}
		}
	}

	if(val < 3) {
		error += "画像の数が足りません\n";
	}

	if(frmObj.title.value == '') {
		error += "タイトルが入力されていません\n";
	}
	if(frmObj.siteurl.value == '') {
		error += "URLが入力されていません\n";
	}
	if(frmObj.comment.value == '') {
		error += "コメントが入力されていません\n";
	}

	if(error != '') {
		alert(error);
		return false;
	} else {
		return true;
	}

}

function deletePost(id) {

	if(confirm('削除してよろしいですか？')) {
		window.location.href= "?m=del&id=" + id;
	}
}


window.onload=function() {

	var spans = document.getElementsByTagName("span");
	var spn_length = spans.length;
	if(spn_length != 0) {
		for (var i=0; i < spn_length; i++) {
			spans[i].onclick = function () {
				check(this.id);
			}
		}
		var ck = document.getElementsByTagName("input");
		var ck_length = eval(ck.length-1);
		for(var i=0; i< ck_length; i++) {
			if(ck[i].className.match('auth')) {
				ck[i].onclick = function() {
					check2(this.id);
				}
			}
		}
		if(num > 0) {
			initialize(num,idarray);
		}
	}
}

/**
 * sortObj 連想配列ソート関数
 * @obj    対象オブジェクト
 * @isKey    true          : キーでソート
 *           false OR null : 値でソート
 * @isNumber true          : 数値としてソート
 *           false OR null : 文字列としてソート
 * @isDesc   true          : 降順ソート
 *           false OR null : 昇順ソート
 */
function sortObj(obj, isKey, isNumber, isDesc){
  var ary = new Array();
  for(var i in obj){
    ary.push({key:i, value:obj[i]});
  }
  ary = ary.sort(sortFunc);
  var ret = new Object();
  for(var i = 0; i < ary.length; i++){
    ret[ary[i].key] = ary[i].value;
  }
  return ret;
  
  function sortFunc(left, right){
    var kv = (isKey) ? "key" : "value";
    var a = left[kv], b = right[kv];
    if(isNumber){
      a = parseFloat(a);
      b = parseFloat(b);
    }else{
      a = String(a);
      b = String(b);
    }
    if(isDesc){
      return a > b ? -1 : a < b ? 1 : 0;
    }else{
      return a < b ? -1 : a > b ? 1 : 0;
    }
  }
}
