// JavaScript Document

var index1;

var index2;

var index3;

var sjobs=new Array();

var jobs=new Array();

function clearListbox(divElem) {

 var testf= document.getElementById(divElem);

 document.getElementById('testf').innerHTML='<select name="data[MovieCategory][category_id][]" id="category_id" size="10" ondblclick="removeAllItem(\'category_id\')" multiple class="multiline_selection add_remove_box" style="width:150px; "></select>';

	

}

function cleardata()

{

		jobs = new Array();

		sjobs=new Array();

}

function  getdata(array,labelname){



	

	var obj= document.getElementById(labelname);

	for (var i = 0; i < array.length; i++){ 

			optGroup = document.createElement('optgroup');

			optGroup.label=array[i][0];

  			obj.appendChild(optGroup);

			for (var j = 0; j < array[i][3].length; ++j){

			if(array[i][3][j][3].length!=0){	

				optGroup = document.createElement('optgroup');

				optGroup.label=array[i][3][j][0];

  				obj.appendChild(optGroup);

				for (var k = 0; k < array[i][3][j][3].length; ++k){

					var item = new Option();

  					optGroup.appendChild(item);

				 	item.value =array[i][3][j][3][k][1];

				 	item.text =array[i][3][j][3][k][0];

				}

			}else{

				var item = new Option();

  					optGroup.appendChild(item);

				 	item.value =array[i][3][j][1];

				 	item.text =array[i][3][j][0];

				}

			}

		}

 }

 function  show_jobs(array,labelname){

	var obj= document.getElementById(labelname);

	for (var i = 0; i < array.length; i++){ 

					var item = new Option();

  					obj.appendChild(item);

				 	item.value =array[i][1];

				 	item.text =array[i][0];

		}

 }

function insertAllItems(element1,element2){

	

	var memberList = document.getElementById(element1);

	var selectedList = document.getElementById(element2);

	

	var len = memberList.length;

	clearListbox("testf");

	for (var i = 0; i < len; ++i){

		

   			if (memberList.options[i].selected == true){

				

				addItem(memberList.options[i].value);	

				memberList.options[i].selected = false;

			}

		}

	getdata(sjobs,"category_id") 

}

function addItem(newId){

	var mylist_array=newId.split("|");

	var pvalue ="";

	var a=new Array(3)

	var val,val2;

	var cnt=0;

	for (var j = 0;j < mylist_array.length ; j++){

		if(pvalue==""){

			pvalue=mylist_array[j];

			a=findArrayElement(jobs,pvalue)

			val=a[4];

			a11=a.pop();

			displayArrayElement(a,cnt);

			cnt++;

		}else{

			pvalue=pvalue + "|" + mylist_array[j];

			if(cnt==1){

				a=findArrayElement(jobs[val][3],pvalue);

				val2=a[4];

				a11=a.pop();

				displayArrayElement(a,cnt);

				cnt++;

			}else if(cnt==2){

				a=findArrayElement(jobs[val][3][val2][3],pvalue);

				a11=a.pop();

				a11=a.pop();

				displayArrayElement(a,cnt);

			}

		}

	}

}

function findArrayElement(array,pvalue){

	var temp= new Array(4);

	for(var i=0;i<array.length;i++){		

			if(array[i][1]==pvalue){

				temp[0]=array[i][0];

				temp[1]=array[i][1];

				temp[2]=array[i][2];

				temp[3]=Array();

				temp[4]=i;

				return temp;

			}

	}

}

function displayArrayElement(array,cnt){

	if(cnt==0){

		var found=0;

		for(var p=0;p<sjobs.length;p++){	

			if(sjobs[p][1]==array[1] && found==0){

				found=1;

				index1=p+1;

			}

		}

		if(found==0){

			index1=sjobs.push(array);

		}

	}else if(cnt==1){

		var found=0;

		for(var p=0;p<sjobs[index1-1][3].length;p++){

			if(sjobs[index1-1][3][p][1]==array[1] && found==0){

				found=1;

				index2=p+1;

			}

		}

		if(found==0){

			index2=	sjobs[index1-1][3].push(array);

		}

	}else if(cnt==2){

		var found=0;

		for(var p=0;p<sjobs[index1-1][3][index2-1][3].length;p++){	

			if(sjobs[index1-1][3][index2-1][3][p][1]==array[1] && found==0){

				found=1;

			}

		}

		if(found==0){

			index3=	sjobs[index1-1][3][index2-1][3].push(array);

		}

	}

}

function removeAllItem(element1){

	var selectedList = document.getElementById(element1);

	var len = selectedList.length;

	clearListbox("testf");

	for (var i = 0; i < len; ++i){

   		if (selectedList.options[i].selected == true){

			removeItem(selectedList.options[i].value);	

			selectedList.options[i].selected = false;

		}

	}



	getdata(sjobs,"category_id");	

}

function removeItem(selectedId){

	

	var mylist_array=selectedId.split("|");

	var pvalue ="";

	var a=new Array(3)

	var val,val2,val3;

	var cnt=0;

	for (var j = 0;j < mylist_array.length ; j++){

		if(pvalue==""){

			pvalue=mylist_array[j];

			a=findArrayElement(sjobs,pvalue)

			val=a[4];

			a11=a.pop();

			a11=a.pop();

			cnt++;

			}else{

			pvalue=pvalue + "|" + mylist_array[j];

			if(cnt==1){

				a=findArrayElement(sjobs[val][3],pvalue);

				val2=a[4];

				a11=a.pop();

				a11=a.pop();

				if(sjobs[val][3][val2][3].length==0){

					if(sjobs[val][3].length==1){

						sjobs[val][3].splice(val2,1);

						sjobs.splice(val,1);

						break;

					}else{

						sjobs[val][3].splice(val2,1);

						break;

					}

				}else if(sjobs[val][3][val2][3].length==1){

						cnt++;

					if(sjobs[val][3].length==1){

						sjobs[val][3].splice(val2,1);

						sjobs.splice(val,1);

						break;

					}else{

						sjobs[val][3].splice(val2,1);

						break;

					}

				}

			}else if(cnt==2){

					a=findArrayElement(sjobs[val][3][val2][3],pvalue);

					val3=a[4];

					a11=a.pop();

					a11=a.pop();

					sjobs[val][3][val2][3].splice(val3,1);

			}

		}

	}

}





