
var myCv = { 
	config : {
		initialized : false			
	}
	,init : function(b) { 						
		myCv.employeeId 			= 0;
		myCv.loginBoxTrigger 		= jQuery("#loginTrigger");
		myCv.headerWorkexperience 	= jQuery("#workExperienceHeader");
		myCv.workexperience 		= jQuery("#workExperience");
		myCv.headerPublications 	= jQuery("#publicationsHeader");
		myCv.publication 			= jQuery("#publication");
		myCv.headerCompetence 		= jQuery("#competenceHeader");
		myCv.competence 			= jQuery("#competence");
		myCv.url80					= "";
		myCv.url443					= "";
		myCv.headerResearchInProgress	= jQuery("#researchInProgressHeader");
		myCv.researchInProgress 				= jQuery("#researchInProgress");
		
		myCv.headerCompetenceAreas	= jQuery("#competenceAreasHeader");
		myCv.competenceAreas		= jQuery("#competenceAreas");
		
		myCv.headerLinks 			= jQuery("#linksHeader");
		myCv.headerFreeText 		= jQuery("#freeTextHeader");
		myCv.freeTextHeaderContent	= jQuery("#freeTextHeaderContent");		
		myCv.freeText 				= jQuery("#freeText");
		myCv.headerPicture 			= jQuery("#thePicture");		
		myCv.headerMainInfo 		= jQuery("#headerMainInfo");
		myCv.links 					= new Array();
		myCv.lang					= "";
		myCv.theTextContent			= "";
		myCv.theTableLinks 			= "";
		myCv.editLinksposToEdit		= -1;
		myCv.aCompetensAreas		= "";
		myCv.theTableCompeteceAreas = "";
		myCv.sAreasTableHeaderCol1 	= "";
		myCv.sAreasTableHeaderCol2 	= "";
		myCv.sDeleteLabel	 		= "";
		myCv.myEmployees	 		= "";
		myCv.urlToNO				= "";
		myCv.urlToEN				= "";
		myCv.urlToOldCv				= "http://www5.uis.no/kompetansekatalog/editpersonalia.aspx?sprak=BOKMAL&id=";
		myCv.urlToOldCvLable		= "";
		myCv.urlToEditButton		= "";
		myCv.urlToEditBigButton		= "";
		myCv.lableLinks				= "";
		myCv.lableCompetences		= "";
		myCv.lableClose				= "";
		
		myCv.aTempCompetenceAreas 	= new Array();
		myCv.theCompetenceAreas		= new Array();
		myCv.connectFunctionalities();
		myCv.bindEditBox();					
	}
	,bindEditBox : function() {		
		jQuery(".editBoxLogin").fancybox({			
			'frameWidth'			: 550				
			,'frameHeight'			: 275
			,'zoomSpeedIn'			: 300
			,'zoomSpeedOut'			: 300
			,'padding'				: false
			,'hideOnContentClick'	: false 
			,'callbackOnShow' 	: function() {									
				myCv.enableTooltip();				
				jQuery("#fancy_frame").attr("SCROLLING","NO");
				myCv.fixTheBoxLogin();
			}
		});
		
		
		jQuery(".editBox").fancybox({			
			'frameWidth'			: 550				
			,'frameHeight'			: 600
			,'zoomSpeedIn'			: 300
			,'zoomSpeedOut'			: 300
			,'padding'				: false
			,'hideOnContentClick'	: false 
			,'callbackOnShow' 	: function() {					
				jQuery("#fancy_close").hide();
				jQuery("#fancy_left").hide();
				jQuery("#fancy_right").hide();		
				myCv.connectFunctionalities();
				myCv.fixTheBox();
				myCv.enableTooltip();		
			}
		});
		jQuery(".editBoxSmall").fancybox({					
			'frameWidth'			: 550				
			,'frameHeight'			: 275
			,'zoomSpeedIn'			: 400
			,'zoomSpeedOut'			: 400
			,'padding'				: false
			,'hideOnContentClick'	: false 
			,'callbackOnShow' 	: function() {											
				jQuery("#fancy_close").hide();
				jQuery("#fancy_left").hide();
				jQuery("#fancy_right").hide();	
				//jQuery('#employee_username').focus();
				myCv.connectFunctionalities();
				myCv.fixTheBox();
				myCv.enableTooltip();		
			}
		});
		jQuery(".editBoxMedium").fancybox({					
			'frameWidth'			: 550				
			,'frameHeight'			: 400
			,'zoomSpeedIn'			: 400
			,'zoomSpeedOut'			: 400
			,'padding'				: false
			,'hideOnContentClick'	: false 
			,'callbackOnShow' 	: function() {											
				jQuery("#fancy_close").hide();
				jQuery("#fancy_left").hide();
				jQuery("#fancy_right").hide();					
				myCv.connectFunctionalities();
				myCv.fixTheBox();
				myCv.enableTooltip();		
			}
		});
		
	}	
	,connectFunctionalities : function(){		
		jQuery("#closeFancyBox").click(function(){ myCv.closeEditWindow(); });
		jQuery("#closeFancyBox2").click(function(){ myCv.closeEditWindow(); });	
		myCv.loginTrigger 	= jQuery("#employee_loginTrigger");
		myCv.logoutTrigger 	= jQuery("#logoutTrigger");		
		myCv.loginTrigger.click(myCv.actionLogin);		
		myCv.logoutTrigger.click(myCv.actionLogout);			
	}
	,enableTooltip : function(){
		// select all desired input fields and attach tooltips to them		
		jQuery("input").tooltip();
	}
	,loginFormInit : function(){		
		jQuery("input").bind("keypress", function(e) {
			 var code = (e.keyCode ? e.keyCode : e.which);
			 if(code == 13) { //Enter keycode
				 myCv.loginTrigger.trigger("click");
			 }
		});	
	}
	,connectEditButtons : function (){		
		var linkOldCV = jQuery("<a></a>")
						.attr("href",myCv.urlToOldCv+myCv.employeeId)
						.attr("target","_blank")
						.text(myCv.urlToOldCvLable)						
						;		
		var linkNO 	= jQuery("<a></a>")
						.append('<img title="" id="theFlagNO" alt="" src="/images/no_NO_flag.gif"/>')
						.attr("href",myCv.urlToNO + myCv.employeeId)
						;					
		
		var linkEN 	= jQuery("<a></a>")
						.append('<img title="" id="theFlagEN" alt="" src="/images/en_US_flag.gif"/>')
						.attr("href",myCv.urlToEN + myCv.employeeId);
						;
		if ( myCv.lang == "no_NO" ){
			linkNO.attr("href","javascript:void(1);");
			jQuery("#theFlagNO").hide("slow");
		}
		
		if (jQuery(".linksContent").length == 0) {
			// the user doesn t have any link so the link box is not in the gui
			var tmp = "<td>"+myCv.lableLinks+"</td>";
			jQuery("#linksHeader").addClass("heading")
					.append(tmp)
					;
		}			
		
		if (jQuery(".competenceContent").length == 0){
			// the user doesn t have any Competence Area so the link box is not in the gui
			var tmp = "<td>"+myCv.lableCompetences+"</td>";
			jQuery("#competenceAreasHeader").addClass("heading")
					.append(tmp)
					;
		}
		
		
		var langFlags = jQuery("<span></span>")
						.attr("id","langNavigation")
						.append(linkOldCV)
						.append(" ")
						.append(linkNO)
						.append(" ")
						.append(linkEN);
		
		
		
		myCv.headerMainInfo.append(langFlags);
		if ( myCv.lang == "no_NO" ){
			linkNO.attr("href","javascript:void(0);").hide();
		}
		if ( myCv.lang == "en_GB" ){
			linkEN.attr("href","javascript:void(0);").hide();
		}		
		
		var tmp = myCv.generateEditBigButton()
			.attr("id","getAnsattDetaljerTrigger")
		  	.attr("class","editBoxMedium")
			.attr("href","/xmlhttprequest.php?service=cv.cvAjaxService&method=editField&field=employeeDetailsCP");
		
		var newTD = jQuery("<td></td>")			
					.append(tmp); 
		var newTR = jQuery("<tr></tr>").append(newTD);
		var newTable = jQuery("<table></table>").append(newTR);
		var theTd = jQuery('<td rowspan="100%"></td>')					
					.append(newTable);
		
		var theTrToInsert = jQuery(jQuery("#profile-table").children().children()[0]);
		theTrToInsert.attr("valign","middle");
		var theTdToInsert = jQuery(theTrToInsert).children()[0];
		theTdToInsert = jQuery(theTdToInsert).next();
		theTdToInsert.after(theTd);
		//myCv.headerMainInfo.append(tmp);
		
		tmp = myCv.generateEditButton()
			.attr("id","getWorkExperienceTrigger")
		  	.attr("class","editBox")
			.attr("href","/xmlhttprequest.php?service=cv.cvAjaxService&method=editField&field=workExperience")
			.css("margin-left","340px");		
		myCv.headerWorkexperience.append(tmp);
		
		tmp = myCv.generateEditButton()
			.attr("id","getpublicationTrigger")
		  	.attr("class","editBox")
			.attr("href","/xmlhttprequest.php?service=cv.cvAjaxService&method=editField&field=publication")
			.css("margin-left","340");	
		myCv.headerPublications.append(tmp);
		
		tmp = myCv.generateEditButton()
		  	.attr("class","editBox")
			.attr("href","/xmlhttprequest.php?service=cv.cvAjaxService&method=editField&field=competence")
			.css("margin-left","340");	
		myCv.headerCompetence.append(tmp);

		tmp = myCv.generateEditButton()
		.attr("class","editBox")
		.attr("href","/xmlhttprequest.php?service=cv.cvAjaxService&method=editField&field=researchInProgress")
		.css("margin-left","340");	
		myCv.headerResearchInProgress.append(tmp);
		
		tmp = myCv.generateEditButton()
		  	.attr("class","editBox")
			.attr("href","/xmlhttprequest.php?service=cv.cvAjaxService&method=editField&field=competenceAreas");
		var theTrToInsert = jQuery(jQuery("#theCompetenceAreasTable").children().children()[0]);
		var tmpTd = jQuery('<td colspan="2"></td>')
					.append(tmp);
		var tmpTr = jQuery('<tr id="competenceEditButton"></tr>').append(tmpTd);
		theTrToInsert.after(tmpTr);
		
		
		tmp = myCv.generateEditButton()
		  	.attr("class","editBox")
			.attr("href","/xmlhttprequest.php?service=cv.cvAjaxService&method=editField&field=links");
		var theTrToInsert = jQuery(jQuery("#theLinksTable").children().children()[0]);
		var tmpTd = jQuery('<td colspan="2"></td>')
					.append(tmp);
		var tmpTr = jQuery("<tr></tr>").append(tmpTd);
		theTrToInsert.after(tmpTr);
		
		tmp = myCv.generateEditButton()
		.attr("id","getCompetenceTrigger")
		.attr("class","editBox")
		.attr("href","/xmlhttprequest.php?service=cv.cvAjaxService&method=editField&field=freeText")
		.css("margin-left","340");	
		myCv.headerFreeText.append(tmp);
		
		
		tmp = myCv.generateEditBigButton()
		.attr("id","getCompetenceTrigger")
		.attr("class","editBoxSmall")
		.attr("href","/xmlhttprequest.php?service=cv.cvAjaxService&method=editField&field=bShowPicture");
		var thePic = jQuery("#thePictureItself");
		
		myCv.headerPicture.prepend(tmp);
		var pos = thePic.position();		
		if (typeof(pos) != 'undefined') {
			myCv.headerPicture.css(
					{ position: "absolute"
					,marginLeft: 0
					,marginTop: 0
					,top: pos.top
					,left: pos.left+50 
			});
		}		
		myCv.bindEditBox();
	}
	,generateEditButton : function (){
		var image = jQuery("<img>");
		image.attr("src",myCv.urlToEditButton);
		var link = jQuery("<a>");
		link.attr("href","javascript:void(0)");
		link.append(image);
		return link;
	}
	,generateEditBigButton : function (){
		var image = jQuery("<img>");
		image.attr("src",myCv.urlToEditBigButton);
		var link = jQuery("<a>");
		link.attr("href","javascript:void(0)");
		link.append(image);
		return link;
	}
	,actionLogin : function (){		
		myCv.userName		= jQuery("#employee_username").val();
		myCv.password		= jQuery("#employee_password").val();			
		jQuery.ajax(
		{			
			type:"POST"
			,cache:false
			,data:
			{
				userName : myCv.userName
				,password : myCv.password
			}
			,url:myCv.url443+"/xmlhttprequest.php?service=cv.cvAjaxService&method=actionLogin"
			,async: false
			,success: function(d) {							
				if (d == "Authentication failed")
				{
					jQuery(".cvEditDisplay").html(d);
					setTimeout("myCv.closeEditWindow()",3000);
				}
				else 
				{					
					var theUrl = myCv.url80+"/om_uis/kontakt_oss/_tilsettkatalog/tilsettkatalog/?ans_nr="+d+"&_"+randomString();
					if (myCv.lang == "en_GB") 
					{
						var theUrl = myCv.url80+"/category.php?categoryID=5426&ans_nr="+d+"&_"+randomString();
					}					
					document.location.href = theUrl;
				}										
			}
		});
	}
	,closeEditWindow : function(){
		parent.jQuery.fn.fancybox.close()
	}
	,actionLogout : function() {		
		jQuery.ajax({			
			type:"GET"
			,cache:false			
			,url: "/xmlhttprequest.php?service=cv.cvAjaxService&method=logout"
			,async: false
			,success: function(d) {
				document.location.href = d;
			}
		});		
	}
	
	//methods specific for personalia administration
	,peronaliaInit : function(){		
		jQuery("#editTrigger").click(function(){
			myCv.savePersonalia();
			jQuery.fn.fancybox.close();
		});
	}
	,savePersonalia : function(){
		var theField 		= jQuery("#theField").val();
		var pos0 = jQuery("#pos0Input").val();		
		var pos1 = jQuery("#pos1Input").val();
		var pos2 = jQuery("#pos2Input").val();
		var pos3 = jQuery("#pos3Input").val();
		var theContent 		= pos0+"::"+pos1+"::"+pos2+"::"+pos3;		
		var theContentTitle =  "";	
		jQuery.ajax({			
			type:"POST"
			,cache:false
			,data: 	{
						theField : theField
						,theContent : theContent
						,theContentTitle : theContentTitle
					}
			,url:"/xmlhttprequest.php?service=cv.cvAjaxService&method=saveTextField"
			,async: false
			,success: function() {
				jQuery("#pos0").html(pos0);
				jQuery("#pos1").html(pos1);
				jQuery("#pos2").html(pos2);
				jQuery("#pos3").html(pos3);
			}
		});	
		
	}
	
	//Methods specific for normal text fields
	,textFieldsInit : function(){	
		jQuery("#editTrigger").click(function(){
			myCv.saveTextField();
			jQuery.fn.fancybox.close();
		});
		var e = jQuery("#theContent").rte({
			css: ['default.css']
			,width: 470
	        ,height: 300
			,controls_rte: rte_toolbar
			,controls_html: html_toolbar
		}
		);
		
		myCv.theEditor = e.theContent;
		jQuery(".disable").hide();
	}
	,saveTextField : function(){
		var theField 		= jQuery("#theField").val();
		var theContent 		= myCv.theEditor.get_content();
		var theContentTitle =  "";
		if (theContent == "<br>") {
			theContent = "";
		}
			
		if (theField == "freeText") {
			theContentTitle = jQuery("#theTitle").val();
		}
		
		jQuery.ajax({			
			type:"POST"
			,cache:false
			,data: 	{
						theField : theField
						,theContent : theContent
						,theContentTitle : theContentTitle
					}
			,url:"/xmlhttprequest.php?service=cv.cvAjaxService&method=saveTextField"
			,async: false
			,success: function() {
				if (jQuery.browser.msie) {
					document.location.href = "/om_uis/kontakt_oss/_tilsettkatalog/tilsettkatalog/?ans_nr="+myCv.employeeId+"&_"+randomString();
				}
				else {
					switch (theField) {
						case "workExperience" : {
							myCv.workexperience.html(theContent);
							break;
						}
						case "publication" :  {
							myCv.publication.html(theContent);
							break;
						}
						case "competence" : {
							myCv.competence.html(theContent);
							break;
						}
						case "researchInProgress" : {
							myCv.researchInProgress.html(theContent);
							break;
						}
						case "freeText" : {
							var spamButton = jQuery("#freeTextHeader").clone();
							
							myCv.freeText.html(theContent);						
							myCv.freeTextHeaderContent.html(theContentTitle)
								.append(spamButton);
							myCv.bindEditBox();
							break;
						}
					}
				}
			}
		});		
		
		
		
	}
	
	//Methods specific for boolean field
	,booleanFieldsInit : function(){	
		jQuery("#editTrigger").click(function(){
			myCv.saveBooleanField();
			jQuery.fn.fancybox.close();
		});
	}
	,saveBooleanField : function(){
		var theField 		= jQuery("#theField").val();
		var theContent 		= "";
		var a				= jQuery("#theBoolean:checked");
		
		if (a[0]) {
			theContent = "Yes";
		}
		else {
			theContent = "No";
		}
		jQuery.ajax({			
			type:"POST"
			,cache:false
			,data: 	{
						theField : theField
						,theContent : theContent
						,theContentTitle : ""
					}
			,url:"/xmlhttprequest.php?service=cv.cvAjaxService&method=saveTextField"
			,async: false
			,success: function() {
				if (a[0]) {
					jQuery("#displayPicture").html('<img id="thePictureItself" src="http://www5.uis.no/kortpic/bilde.aspx?id='+myCv.employeeId+'"border="0" width="150" />');
					var thePic = jQuery("#thePictureItself");
					
					var pos = thePic.position();
					myCv.headerPicture.css(
							{ position: "absolute"
							,marginLeft: 0
							,marginTop: 0
							,top: pos.top
							,left: pos.left+50 
					});
				}
				else {
					jQuery("#displayPicture").html("");
					myCv.headerPicture.css(
							{ position: ""
							}
					);
					
				}
			}
		});	
	}
	
	//Methods specific for the link administration
	,newLinksInit : function (){
		myCv.theTableLinks 			= jQuery("#changeLinksTableLinks");
		myCv.theNewLinkUrl 			= jQuery("#newLinkUrl");
		myCv.theNewLinkName 		= jQuery("#newLinkName");
		myCv.editLinkDiv			= jQuery("#changeLinksEditLink").hide();
		myCv.editLinkUrl			= jQuery("#editLinkUrl");
		myCv.editLinkName			= jQuery("#editLinkName");
		myCv.editLinkTrigger 		= jQuery("#editLinkTrigger")
										.click(function(){myCv.saveLink()}); 		
		
		jQuery("#newLinkTrigger").click(function(){
			myCv.addNewLink();
		});
		jQuery("#editTrigger").click(function(){
			myCv.saveLinks();
			jQuery.fn.fancybox.close();
		});
		myCv.generateLinksTable();
	}
	,addNewLink : function(){
		var theUrl = myCv.theNewLinkUrl.val();
		d(String(theUrl).substring(0,8));
		d(String(theUrl).substring(0,8) == "https://");
		
		if ( theUrl != "" && myCv.theNewLinkName.val() != "" ) {
			d(String(theUrl).substring(0,7) == "http://") ;
			if (! (
						String(theUrl).substring(0,7) == "http://"
					|| 	String(theUrl).substring(0,7) == "HTTP://" 
					|| 	String(theUrl).substring(0,8) == "https://" 
					|| 	String(theUrl).substring(0,8) == "HTTPS://" 
				))  {
				theUrl = "http://"+theUrl;
			}
			
			var item = {
					'thePos': myCv.links.length
					,'theUrl': theUrl 
					,'theName': myCv.theNewLinkName.val()
				};									
			myCv.links.push(item);	
			myCv.generateLinksTable();	
			myCv.theNewLinkUrl.val("");
			myCv.theNewLinkName.val("");
		}
	}
	,generateLinksTable : function () {
		myCv.theTableLinks.html("");		
		var tmpTD	= jQuery('<td class="topLinksTable"></td>')
					.attr("colspan","2")					
					.html("Links");
		var tmp 	= jQuery("<tr></tr>")
					.append(tmpTD);
		myCv.theTableLinks.append(tmp);
		for (i=0;i < myCv.links.length;i++){
			var item = myCv.links[i];
			var tmpAEdit = jQuery("<a>" +item["theName"]+"</a>")
				.attr("id",i)
				.attr("alt",item["theUrl"])
				.attr("href","javascript:void(0);")
				.click(function(){ myCv.generateEditLink(this);	});
				
			var tmpADelete = jQuery("<a>Slett</a>")				
				.attr("href","javascript:void(0);")
				.attr("id",i)				
				.click(function(){ myCv.deleteLink(this); });			
			var tmpTD = jQuery("<td></td>")
				.attr("width","85%")
				.attr("class","changeLinksTableTD")
				.append(tmpAEdit);
			var tmpTD2 = jQuery("<td></td>")
				.attr("class","changeLinksTableTD")
				.append(tmpADelete);		
			var tmp = jQuery("<tr></tr>")
				.append(tmpTD)
				.append(tmpTD2);
			myCv.theTableLinks.append(tmp);
		}
	}
	,generateEditLink : function(a){			
		var pos	= jQuery(a).attr("id");
		item 	= myCv.links[pos];
		myCv.editLinkUrl.val(item["theUrl"]);
		myCv.editLinkName.val(item["theName"]) ;
		myCv.editLinkDiv.show("slow");
		myCv.editLinksposToEdit = pos;
	}
	
	,saveLink : function(){
		var item = {
				'thePos': myCv.editLinksposToEdit
				,'theUrl':myCv.editLinkUrl.val()
				,'theName':myCv.editLinkName.val()
		};
		myCv.links[myCv.editLinksposToEdit] = item;
		myCv.generateLinksTable();
		myCv.editLinkDiv.hide("slow");
	}
	
	,deleteLink:function(a){		
		var pos = jQuery(a).attr("id");
		var newLinks = new Array();
		delete myCv.links[pos];
		for (var i = 0; i < myCv.links.length; i++){
			if (myCv.links[i] != undefined) {
				newLinks.push( myCv.links[i] );
			}  
		}
		myCv.links = newLinks;
		myCv.generateLinksTable();
	}
	,saveLinks : function(){
		var theField 		= jQuery("#theField").val();
		var theContent 		= "";
		for (i=0;i < myCv.links.length;i++){
			var item 	= myCv.links[i];
			theContent 	= theContent+item['theName']+"::"+item['theUrl'];
			if (i < myCv.links.length - 1) {
				theContent 	= theContent+"::";
			}
		}
		var theContentTitle =  "";
		jQuery.ajax({			
			type:"POST"
			,cache:false
			,data: 	{
						theField : theField
						,theContent : theContent
						,theContentTitle : theContentTitle
					}
			,url:"/xmlhttprequest.php?service=cv.cvAjaxService&method=saveTextField"
			,async: false
			,success: function() {
				jQuery(".linksContent").remove();
				var theTable = jQuery("#theLinksTable");
				for (i=0;i < myCv.links.length;i++){
					var item = myCv.links[i];
					var theLink = jQuery("<a></a>")
								.attr("href",item['theUrl'])
								.attr("target","_blank")
								.attr('class',"arrowLink")
								.html(item['theName']);
					var tr = jQuery("<tr></tr>")
								.attr("class","linksContent");
					var td = jQuery("<td></td>")
								.append(theLink);
					tr.append(td);
					theTable.append(tr);
				}
				
			}
		});	
	}
	,initCompetenseAreas : function(col1,col2,deleteLabel) {
		myCv.sAreasTableHeaderCol1 		= col1;
		myCv.sAreasTableHeaderCol2 		= col2;
		myCv.sDeleteLabel		 		= deleteLabel;
		myCv.selectboxCompetenceArea 	= jQuery("#selectboxCompetenceArea");		
		myCv.addButton					= jQuery("#conpetenceAreaAddButton"); 
		myCv.theTableCompeteceAreas		= jQuery("#changeLinksTableLinks");		
		jQuery.ajax({			
			type:"GET"
			,cache:false		
			,url:"/xmlhttprequest.php?service=cv.cvAjaxService&method=getCompetenceAreasJson"
			,async: false			
			,success: function(d) {					
				myCv.parseCompetenseAreas(d);								
			}			
		});
		myCv.addButton.click(function(){
			myCv.addCompetense();
		});
		jQuery("#selectboxCompetenceSubArea").bind("dblclick",(function(){
			myCv.addCompetense();
		}));
		
		for (var i=1; i < myCv.aCompetensAreas.length;i++){
			var item = myCv.aCompetensAreas[i];
			var opt = jQuery("<option/>")
						.attr("id",item.id)
						.append(item.name)						
			;
			myCv.selectboxCompetenceArea.append(opt);
		}
		myCv.selectboxCompetenceArea.change(function(){			
			var a 		= jQuery(myCv.selectboxCompetenceArea).find(":selected");
			var theId 	= jQuery(a).attr("id");
			myCv.populateSubAreas(theId);
		});
		
		jQuery("#editTrigger").click(function(){
			myCv.saveCompetenceAreas();
			jQuery.fn.fancybox.close();
		});
		myCv.selectboxCompetenceArea.trigger("change");
	}
	,saveCompetenceAreas : function(){
		var theField 	= jQuery("#theField").val();
		var theContent 	= "";
		var aAreas 		= new Array();
		for (var i=0;i < myCv.theCompetenceAreas.length;i++){
			var item 	= myCv.theCompetenceAreas[i];
			if (!findArray(aAreas,item.area)) {
				aAreas.push(item.area);
			}
		}
		for (var i=0;i < aAreas.length; i++){
			theContent = theContent+aAreas[i];
			for (var j=0;j < myCv.theCompetenceAreas.length;j++){
				if (myCv.theCompetenceAreas[j].area == aAreas[i]){
					theContent = theContent + '::' + myCv.theCompetenceAreas[j].subarea;
				}
			}
			theContent = theContent+'||';									
		}
		var theContentTitle =  "";
		jQuery.ajax({			
			type:"POST"
			,cache:false
			,data: 	{
						theField : theField
						,theContent : theContent
						,theContentTitle : theContentTitle
					}
			,url:"/xmlhttprequest.php?service=cv.cvAjaxService&method=saveTextField"
			,async: false
			,success: function() {		
				jQuery(".competenceContent").remove();
				var theTable = jQuery("#theCompetenceAreasTable");		
				
				
				theTable.find(".competenceContent").remove();
				
				for (var i=0;i < aAreas.length; i++){
					var theTd 	= jQuery("<td></td>")
								.attr("colspan",2)
								.append(aAreas[i]);
					var theTr = jQuery('<tr class="competenceContent"></tr>')
								.append(theTd);								
					theTable.append(theTr);
					
					for (var j=0;j < myCv.theCompetenceAreas.length;j++) {
						if (myCv.theCompetenceAreas[j].area == aAreas[i] ) {
							var theTd1 = jQuery("<td></td>");
							var theTd2 = jQuery("<td></td>")
										.append(myCv.theCompetenceAreas[j].subarea);
							var theTr = jQuery('<tr class="competenceContent"></tr>')
										.append(theTd1)
										.append(theTd2);								
							theTable.append(theTr);
						}
					}
				}	
			}
		});	
	}
	,addCompetense : function() {
		var a		= jQuery(myCv.selectboxCompetenceArea).find(":selected");
		var subA 	= jQuery(myCv.selectboxCompetenceSubArea).find(":selected");
				
		if (subA.length == 0) {
			var item = {
					'thePos'	: myCv.theCompetenceAreas.length
					,'area'		: a.val()
					,'subarea'	: ""
				};	
			var checkExist = a.val()+"::";			
			if (!findArray(myCv.aTempCompetenceAreas,checkExist)){
				myCv.theCompetenceAreas.push(item);
				myCv.aTempCompetenceAreas.push(checkExist);
			}	
		}
		else {
			// subArea is selected, we have to loop all selected
			for (var i=0;i < subA.length;i++) {
				var item = {
						'thePos'	: myCv.theCompetenceAreas.length
						,'area'		: a.val()
						,'subarea'	: jQuery(subA[i]).html()
					};
				var checkExist = a.val()+"::"+jQuery(subA[i]).html();
				if (!findArray(myCv.aTempCompetenceAreas,checkExist)){
					myCv.theCompetenceAreas.push(item);
					myCv.aTempCompetenceAreas.push(checkExist);
				}	
			}
		}
		jQuery(myCv.selectboxCompetenceSubArea).find(":selected").remove();	
		myCv.generateCompetenceTable();	
	}
	,populateSubAreas : function(id){
		myCv.selectboxCompetenceSubArea = jQuery("#selectboxCompetenceSubArea");
		jQuery("#selectboxCompetenceSubArea :option").remove();
		var item = myCv.aCompetensAreas[id];				
		var aSub = item.sa;
		for (var i=0;i < aSub.length;i++){
			var checkExist = item.name+"::"+aSub[i];	
			if (!findArray(myCv.aTempCompetenceAreas,checkExist)){
				var opt = jQuery("<option/>")
							.append(aSub[i]);
				myCv.selectboxCompetenceSubArea.append(opt);
			}
		}
		myCv.generateCompetenceTable();	
	}
	,parseCompetenseAreas : function(json){
		var tmpJson = jsonParse(json);
		var a 		= new Array();
		var item 	= {};		
		for (var i = 0;i < tmpJson.length; i++){
			var b 		= new Array();
			item 		= {};
			item.id 	= tmpJson[i].id;
			item.name	= tmpJson[i].name;
			var subArea = tmpJson[i].subAreas;			
			for (var j=0;j<tmpJson[i].subAreas.length;j++){
				b.push(tmpJson[i].subAreas[j].name);	
			}
			item.sa = b;
			a[item.id] = item;
		}				
		//a[0] = item;
		myCv.aCompetensAreas = a;
	}
	,generateCompetenceTable : function () {
		myCv.theTableCompeteceAreas.html("");		
		var tmpTD	= jQuery('<td class="topLinksTable"></td>')
					.html(myCv.sAreasTableHeaderCol1);
		var tmpTD2		= jQuery('<td class="topLinksTable"></td>')
					.html(myCv.sAreasTableHeaderCol2);
		var tmpTD3		= jQuery('<td class="topLinksTable"></td>')
						.html("");
		var tmp 	= jQuery("<tr></tr>")
					.append(tmpTD)
					.append(tmpTD2)
					.append(tmpTD3);
		myCv.theTableCompeteceAreas.append(tmp);
		for (i=0;i < myCv.theCompetenceAreas.length;i++){
			var item = myCv.theCompetenceAreas[i];
			
			var tmpADelete 	= jQuery("<a>"+myCv.sDeleteLabel+"</a>")	
							.attr("href","javascript:void(0);")
							.attr("id",i)
							.click(function(){ myCv.deleteCompetenceArea(this); });
			var tmpTD 		= jQuery("<td></td>")
							.attr("width","55%")
							.attr("class","changeLinksTableTD")
							.append(item["area"]);
			var tmpTD2		= jQuery("<td></td>")
							.attr("class","changeLinksTableTD")
							.append(item["subarea"]);
			var tmpTDDelete	= jQuery("<td></td>")
							.attr("class","changeLinksTableTD")
							.append(tmpADelete);
			var tmp 		= jQuery("<tr></tr>")
							.append(tmpTD)
							.append(tmpTD2)
							.append(tmpTDDelete);
			myCv.theTableCompeteceAreas.append(tmp);
		}		
	}
	,deleteCompetenceArea : function(a){	
		var pos = jQuery(a).attr("id");
		var newCompetenceAreas = new Array();
		var theItem = myCv.theCompetenceAreas[pos];
		var toDelete = theItem.area+"::"+theItem.subarea;
		delete myCv.theCompetenceAreas[pos];
		for (var i = 0; i < myCv.theCompetenceAreas.length; i++){
			if (myCv.theCompetenceAreas[i] != undefined) {
				newCompetenceAreas.push( myCv.theCompetenceAreas[i] );
			}  
		}
		deleteFromArray(myCv.aTempCompetenceAreas,toDelete);
		myCv.theCompetenceAreas = newCompetenceAreas;
		var a 		= jQuery(myCv.selectboxCompetenceArea).find(":selected");
		var theId 	= jQuery(a).attr("id");
		myCv.populateSubAreas(theId);
		myCv.generateCompetenceTable();
	}
	,fixTheBox : function(){
		//fix the box
		var fancy 	= jQuery("#fancy_ajax");
		var fancyW 	= fancy.width();
		var fancyH 	= fancy.height();		
		var innerBox = jQuery(".employeeEditCv");
		innerBox.width(fancyW-15)
				.css("margin-left","5px")
				.height(fancyH-15)
				.css("margin-top","5px");
		//fix close button
		var totalWidth = jQuery(".cvEditHeader").width();
		var widthText = jQuery("#cvEditHeaderText").width();
		jQuery("#closeCvEditor")
			.css("margin-left",totalWidth - widthText - 60)
			;
		jQuery("#closeFancyBox")
			.attr("class","arrowLink")
			.prepend(myCv.lableClose)
			;				
	}
	,fixTheBoxLogin : function () {

		var theImg = jQuery("<img border=\"0\" src=\"/images/calendar/closeWindow.gif\"/>");
		jQuery("<a href=\"javascript:void(0);\">LUKK </a>")
			.append(theImg)
			.attr("id","closeTrigger")
			.appendTo(jQuery("#fancy_close"))
			.css("position","absolute")
			.css("top","20px")
			.css("right","30px")
			.css("width","50px")	
			.css("z-index","100")
			;
			
			
	}
}

function findArray(ary,elem){
	for(var i=0; i<ary.length; i++){
        if(ary[i] == elem){
            return true;
        }
    }
    return false;	
}
function deleteFromArray(ary,elem) {
	for(var i=0; i<ary.length; i++){
		if(ary[i] == elem){
			delete ary[i];
		}
	}
	return ary;
}


function randomString() {
	var chars = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXTZabcdefghiklmnopqrstuvwxyz";
	var string_length = 8;
	var randomstring = '';
	for (var i=0; i<string_length; i++) {
		var rnum = Math.floor(Math.random() * chars.length);
		randomstring += chars.substring(rnum,rnum+1);
	}

  return randomstring;
}

function d (a) {
	//console.log(a);
}