function getEnterpriseContent(enterpriseId, section, page, questionnaireId, type) {
    x_getenterprisecontent(enterpriseId, section, page, questionnaireId, type, getEnterpriseContent_cb);
}

function getEnterpriseContent_cb(result) {
    if (result.error == 0) {
        var id = "enterprise-content";
        if (result.type == 0) {
            writeContent(id, result.content, result.enterpriseId, result.title, result.section, result.pagerType);
        } else {
            $_("enterprise-content").style.position = "relative";
            $("#" + "enterprise-content").slideUp(700, function() {$_("enterprise-content").style.position = "static";});
            setTimeout(function() { writeContent(id, result.content, result.enterpriseId, result.title, result.section, result.pagerType);}, 700);
        }
    } else {
        alert("Error code: " + result.error + " \nError Message: " + result.msg);
    }
}

function writeContent(id, content, enterpriseId, title, section, pagerType) {
	destroyAllTinyMCEInstance();
    $_(id).style.position = "relative";
    $_(id).innerHTML = content;
    $_("enterprise-section").innerHTML = title.name;
    $_("enterprise-section-count").innerHTML = title.count;
    $("#" + id).slideDown(700, function() {$_(id).style.position = "static";});
    var mainbody = $("#" + "mainbody");
    mainbody.removeClass("epJobs");
    if (section == 3) {
        mainbody.addClass("epJobs");
        initHovers();
    }
    if (section == 1) {
        $_("rssLink").style.visibility = "visible";
        $_("rssLink").href = "rss/enterpriseAnswer.php?enterpriseId="+enterpriseId;
    } else if (section == 4) {
        $_("rssLink").style.visibility = "visible";
        $_("rssLink").href = "rss/enterpriseSpeak.php?enterpriseId="+enterpriseId;
    } else {
        $_("rssLink").style.visibility = "hidden";
    }
    initSaveAnswerClick(enterpriseId);
    initAddAnswer(enterpriseId);
    initGetCommentsClick(enterpriseId);
    initPager(pagerType);
	initTinyMce("new-answer-message", null);
}

function initSaveAnswerClick(enterpriseId) {
    $('input.new-answer-save').click(function() {
        var questionnaireId = $_("new-answer-questionnaire").value;
//        var message = checkField($_("new-answer-message"), 4096, "R&eacute;pondre");
		var message = getTinyMceContent("new-answer-message");
        if (message) {
            x_saveanswer(enterpriseId, questionnaireId, convertToBr(message), saveAnswer_cb);
        }
    });
}

function saveAnswer_cb(result) {
    if (result.error == 0) {
        getEnterpriseContent(result.enterpriseId, 1, null, result.questionnaireId, 1);
        getEnterpriseQuestionnaire(result.enterpriseId, 1, result.questionnaireId, 1);
    } else {
        alert("Error code: " + result.error + " \nError Message: " + result.msg);
    }
}

function initAddAnswer(enterpriseId) {
	$('a.id-newMessage').click(function(){
    var o = $('#' + "newMessage");
    if (/state-collapsed/.test(this.className)) {
        $(this).removeClass('state-collapsed');
        o.removeClass('hide');
        $_("newMessage").style.position = "relative";
        o.slideDown(700, function() {
            $_("newMessage").style.position = "static";
        });
        $(this).addClass('state-expanded');
    }  else  {
        $(this).removeClass('state-expanded');
        o.slideUp(700).addClass('hide');
        $(this).addClass('state-collapsed');
    }
    return false;
	});
}

function getEnterpriseLinks(enterpriseId, section, type) {
    
    var currentMenu = -1;
    $('a.mainmenu-click').each(function() {
        if (this.className.match(/special/i)) {
            var r = this.id.match(/menuitem-([0-9]+)/i);
            currentMenu = r[1];
        }
    });
    if (section != currentMenu || type == 0) {
        x_enterpriselinks(enterpriseId, section, type, getEnterpriseLinks_cb);
    }
}

function getEnterpriseLinks_cb(result) {
    if (result.error == 0) {
        var id = "enterprise-links";
        if (result.type == 0) {
            writeEnterpriseLinks(id, result.content, result.enterpriseId, 0);
        } else {
            $("#" + id).fadeOut(600);
            setTimeout(function() { writeEnterpriseLinks(id, result.content, result.enterpriseId, 1); }, 500);
        }
    } else {
        alert("Error code: " + result.error + " \nError Message: " + result.msg);
    }
}

function writeEnterpriseLinks(id, content, enterpriseId, type) {
    $_(id).style.position = "relative";
    $_(id).innerHTML = content;
    if (type == 0) {
        $("#" + id).slideDown(700, function() {$_(id).style.position = "static";});
    } else {
        $("#" + id).fadeIn(500, function() {$_(id).style.position = "static";});
    }
    initMainMenuClick(enterpriseId);
}

function initMainMenuClick(enterpriseId) {
    $('a.mainmenu-click').click(function() {
        var r = this.id.match(/menuitem-([0-9]+)/i);
        
        var questionnaireSelect = -1;
        if (r[1] == 1) {
            questionnaireSelect = 0;
        }
        getEnterpriseLinks(enterpriseId, r[1], 1);
        getEnterpriseContent(enterpriseId, r[1], null, null, 1);
        getEnterpriseQuestionnaire(enterpriseId, r[1], questionnaireSelect, 1);
    });
}

function getEnterpriseQuestionnaire(enterpriseId, section, selected, type) {

    var currentSelect = -1;
    
    $('a.questionnaire-click').each(function() {
        if (this.className.match(/special/i)) {
            var r = this.id.match(/questionnaire-([0-9]+)/i);
            currentSelect = r[1];
        }
    });
    if ($_('questionnaire-all')) {
        allLink = $("#" + 'questionnaire-all')
        if (allLink.attr("class").match(/special/i)) {
            currentSelect = 0;
        }
    }
    if (selected != currentSelect || type == 0) {
        x_enterprisequestionnaire(enterpriseId, selected, type, getEnterpriseQuestionnaire_cb);
    }
}

function getEnterpriseQuestionnaire_cb(result) {
    if (result.error == 0) {
        if (result.type == 0) {
            writeEnterpriseQuestionnaire("enterprise-questionnaire", result.content, result.enterpriseId, result.type);
        } else {
            $("#" + "enterprise-questionnaire").fadeOut(500);
            setTimeout(function() {
                writeEnterpriseQuestionnaire("enterprise-questionnaire", result.content, result.enterpriseId, result.type);
            }, 500);
        }
    } else {
        alert("Error code: " + result.error + " \nError Message: " + result.msg);
    }
}

function writeEnterpriseQuestionnaire(id, content, enterpriseId, type) {
    $_(id).style.position = "relative";
    $_(id).innerHTML = content;
    if (type == 0) {
        $("#" + id).slideDown(700, function() {$_(id).style.position = "static";});
    } else {
        $("#" + id).fadeIn(500, function() {$_(id).style.position = "static";});
    }
    initQuestionnaireClick(enterpriseId, type);
}

function initQuestionnaireClick(enterpriseId, type) {
    section = (document.getElementById("menuitem-4"))?4:1;

    $('a.questionnaire-click').click(function() {
        var r = this.id.match(/questionnaire-([0-9]+)/i);
        getEnterpriseLinks(enterpriseId, section, 1);
        getEnterpriseQuestionnaire(enterpriseId, 1, r[1], 1);
        getEnterpriseContent(enterpriseId, 1, null, r[1]);
    });
    $('a.questionnaire-all').click(function() {
        getEnterpriseLinks(enterpriseId, section, 1);
        getEnterpriseQuestionnaire(enterpriseId, 1, 0, 2);
        getEnterpriseContent(enterpriseId, 1, null, null);
    });
}

function getPageEnterpriseAnswers(page, enterpriseId, questionnaireId) {
    getEnterpriseContent(enterpriseId, 1, page, questionnaireId, 1);
}

function getPageEnterpriseTalents(page, enterpriseId, questionnaireId) {
    getEnterpriseContent(enterpriseId, 2, page, questionnaireId, 1);
}

function getPageEnterpriseJobOffers(page, enterpriseId, questionnaireId) {
    getEnterpriseContent(enterpriseId, 3, page, questionnaireId, 1);
}

function getPageEnterpriseSpeaks(page, enterpriseId) {
    getEnterpriseContent(enterpriseId, 4, page, null, 1);   
}

function initGetCommentsClick(enterpriseId) {
	$("a.post-comment").click(function() {
        var link = $(this);
        var r = this.className.match(/post-id-([0-9]+)/i);
        var content = $("#" + "comments-row-" + r[1]);
        if (/state-collapsed/.test(this.className)) {
            link.removeClass('state-collapsed');
            link.addClass('state-expanded');
            getComments(enterpriseId, r[1], 0);
        } else {
            link.removeClass('state-expanded');
            link.addClass('state-collapsed');
            content.slideUp(700);
        }
    });
}

function getComments(enterpriseId, postId, type) {
    x_getcomments(enterpriseId, postId, type, getComments_cb);    
}

function getComments_cb(result) {
    if (result.error == 0) {
        if (result.type == 0) {
            writeComments(result.postId, result.content, result.enterpriseId, result.countComments);
        } else {
            $("#" + "comments-row-" + result.postId).slideUp(700, function() {$_("comments-" + result.postId).style.position = "static";} );
            setTimeout(function() { writeComments(result.postId, result.content, result.enterpriseId, result.countComments); }, 1000);
        }
    } else {
        alert("Error code: " + result.error + " \nError Message: " + result.msg);
    }
}

function writeComments(id, content, enterpriseId, countComments) {
    $_("comments-" + id).innerHTML = content;
    $_("count-comments-" + id).innerHTML = countComments;
    $("#" + "comments-row-" + id).slideDown(700, function() { $_("comments-row-" + id).style.position = "static"; });
    initAddComments(enterpriseId);
}

function initAddComments(enterpriseId) {
	$("a.comments-add").click(function() {
        var link = $(this);
        var r = this.id.match(/post-id-([0-9]+)/i);
        var content = $("#" + "comments-add-editor-" + r[1]);
        if (/state-collapsed/.test(this.className)) {
            link.removeClass('state-collapsed');
            link.addClass('state-expanded');
            content.slideDown(700);
            initAddCommentsClick(enterpriseId, r[1]);
        } else {
            link.removeClass('state-expanded');
            link.addClass('state-collapsed');
            content.slideUp(700);
        }
    });
}

function initAddCommentsClick(enterpriseId, postId) {
    $("input.comments-add-save").click(function() {
        var comment = checkField($_("comments-add-message-" + postId), 1024, "Commentaire");
        if (comment) {
            x_addcomment(enterpriseId, postId, convertToBr(comment), addComment_cb);
        }
    });
}

function addComment_cb(result) {
    if (result.error == 0) {
        getComments(result.enterpriseId, result.postId, 1);
    } else {
        alert("Error code: " + result.error + " \nError Message: " + result.msg);
    }
}

function checkField(checkElement, valueLength, title) {
    var str = $.trim(checkElement.value);

    if (str == "") {
        alert(title + ": " + "Ce champ ne peut pas etre laisse vide");
        return false;
    }

    if (str.length > valueLength) {
        if(!confirm(title + ": " + "contient plus de " +  valueLength + " caracteres! Continuer?")) {
            return false;
        }
    }
    return str;
}

function viewEnterpriseInit(enterpriseId, defaultSection, defaultQuestionnaire) {
  	if (typeof($) == 'undefined') {
		return false;
	}
/*    var questionnaireSelect = -1;
    if (defaultSection == 1) {
        questionnaireSelect = 0;
    }*/
    var type = 0;
    var page = null;
//    var questionnaireId = null;
    initSearchBar_v2("Enterprise");
    getEnterpriseLinks(enterpriseId, defaultSection, type);
    getEnterpriseQuestionnaire(enterpriseId, defaultSection, defaultQuestionnaire, 0);
    getEnterpriseContent(enterpriseId, defaultSection, page, defaultQuestionnaire, type);
}
        // Showing Sajax Status
        AST_load = "Loading...";
        AST_save = "Saving...";
        AST_clear = "";
        
        function setAjaxStatus(str) {
            if (document.getElementById("ajaxStatus")) {
                var div = document.getElementById("ajaxStatus");
            } else {
                var div  = document.createElement("DIV");
                div.className = "ajaxStatus";
                div.id = "ajaxStatus";
                div.setAttribute("id", "ajaxStatus");
                document.body.appendChild(div);
            }
            div.innerHTML = str;
            if (str == AST_clear) {
                div.style.visibility = "hidden";
                return;
            }
            
            var scrollX = document.documentElement.scrollLeft || document.body.scrollLeft;
            var scrollY = document.documentElement.scrollTop || document.body.scrollTop;
            var width = document.documentElement.clientWidth || document.body.clientWidth;
            
            div.style.left = width - div.clientWidth + scrollX +"px";
            div.style.top = scrollY+"px";
            div.style.visibility = "visible";
        }
		// remote scripting library
		// (c) copyright 2005 modernmethod, inc
		var sajax_debug_mode = false;
		var sajax_request_type = "GET";
		var sajax_target_id = "";
		var sajax_failure_redirect = "";

		function sajax_debug(text) {
			if (sajax_debug_mode)
				alert(text);
		}

 		function sajax_init_object() {
 			sajax_debug("sajax_init_object() called..")

 			var A;

 			var msxmlhttp = new Array(
				'Msxml2.XMLHTTP.5.0',
				'Msxml2.XMLHTTP.4.0',
				'Msxml2.XMLHTTP.3.0',
				'Msxml2.XMLHTTP',
				'Microsoft.XMLHTTP');
			for (var i = 0; i < msxmlhttp.length; i++) {
				try {
					A = new ActiveXObject(msxmlhttp[i]);
				} catch (e) {
					A = null;
				}
			}

			if(!A && typeof XMLHttpRequest != "undefined")
				A = new XMLHttpRequest();
			if (!A)
				sajax_debug("Could not create connection object.");
			return A;
		}

		var sajax_requests = new Array();

		function sajax_cancel() {
			for (var i = 0; i < sajax_requests.length; i++)
				sajax_requests[i].abort();
		}

		function sajax_do_call(func_name, args) {
			var i, x, n;
			var uri;
			var post_data;
			var target_id;
            setAjaxStatus(AST_load);
			sajax_debug("in sajax_do_call().." + sajax_request_type + "/" + sajax_target_id);
			target_id = sajax_target_id;
			if (typeof(sajax_request_type) == "undefined" || sajax_request_type == "")
				sajax_request_type = "GET";

			uri = "http://www.jobmeeters.com/talents/index.php?view=Enterprise%2FView";
			if (sajax_request_type == "GET") {

				if (uri.indexOf("?") == -1)
					uri += "?rs=" + encodeURIComponent(func_name);
				else
					uri += "&rs=" + encodeURIComponent(func_name);
				uri += "&rst=" + encodeURIComponent(sajax_target_id);
				uri += "&rsrnd=" + new Date().getTime();

				for (i = 0; i < args.length-1; i++)
					uri += "&rsargs[]=" + encodeURIComponent(args[i]);

				post_data = null;
			}
			else if (sajax_request_type == "POST") {
				post_data = "rs=" + encodeURIComponent(func_name);
				post_data += "&rst=" + encodeURIComponent(sajax_target_id);
				post_data += "&rsrnd=" + new Date().getTime();

				for (i = 0; i < args.length-1; i++)
					post_data = post_data + "&rsargs[]=" + encodeURIComponent(args[i]);
			}
			else {
				alert("Illegal request type: " + sajax_request_type);
			}

			x = sajax_init_object();
			if (x == null) {
				if (sajax_failure_redirect != "") {
					location.href = sajax_failure_redirect;
					return false;
				} else {
					sajax_debug("NULL sajax object for user agent:\n" + navigator.userAgent);
					return false;
				}
			} else {
				x.open(sajax_request_type, uri, true);
				// window.open(uri);

				sajax_requests[sajax_requests.length] = x;

				if (sajax_request_type == "POST") {
					x.setRequestHeader("Method", "POST " + uri + " HTTP/1.1");
					x.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
				}

				x.onreadystatechange = function() {
					if (x.readyState != 4)
						return;

					sajax_debug("received " + x.responseText);

					var status;
					var data;
					var txt = x.responseText.replace(/^\s*|\s*$/g,"");
					status = txt.charAt(0);
					data = txt.substring(2);

					if (status == "") {
						// lets just assume this is a pre-response bailout and let it slide for now
					} else if (status == "-")
						alert("Error: " + data);
					else {
                        setAjaxStatus(AST_clear);
						if (target_id != "")
							document.getElementById(target_id).innerHTML = eval(data);
						else {
							try {
								var callback;
								var extra_data = false;
								if (typeof args[args.length-1] == "object") {
									callback = args[args.length-1].callback;
									extra_data = args[args.length-1].extra_data;
								} else {
									callback = args[args.length-1];
								}
								callback(eval(data), extra_data);
							} catch (e) {
								sajax_debug("Caught error " + e + ": Could not eval " + data );
							}
						}
					}
				}
			}

			sajax_debug(func_name + " uri = " + uri + "/post = " + post_data);
			x.send(post_data);
			sajax_debug(func_name + " waiting..");
			delete x;
			return true;
		}

		
		// wrapper for refreshEnterprise
		function x_refreshEnterprise() {
			sajax_do_call("refreshEnterprise",
				x_refreshEnterprise.arguments);
		}

		
		// wrapper for refreshKnowhow
		function x_refreshKnowhow() {
			sajax_do_call("refreshKnowhow",
				x_refreshKnowhow.arguments);
		}

		
		// wrapper for refreshMyweb
		function x_refreshMyweb() {
			sajax_do_call("refreshMyweb",
				x_refreshMyweb.arguments);
		}

		
		// wrapper for refreshWishList
		function x_refreshWishList() {
			sajax_do_call("refreshWishList",
				x_refreshWishList.arguments);
		}

		
		// wrapper for removeFile
		function x_removeFile() {
			sajax_do_call("removeFile",
				x_removeFile.arguments);
		}

		
		// wrapper for addTag
		function x_addTag() {
			sajax_do_call("addTag",
				x_addTag.arguments);
		}

		
		// wrapper for selectedTag
		function x_selectedTag() {
			sajax_do_call("selectedTag",
				x_selectedTag.arguments);
		}

		
		// wrapper for selectedTagType
		function x_selectedTagType() {
			sajax_do_call("selectedTagType",
				x_selectedTagType.arguments);
		}

		
		// wrapper for searchUser
		function x_searchUser() {
			sajax_do_call("searchUser",
				x_searchUser.arguments);
		}

		
		// wrapper for selectCategory
		function x_selectCategory() {
			sajax_do_call("selectCategory",
				x_selectCategory.arguments);
		}

		
		// wrapper for saveSearch
		function x_saveSearch() {
			sajax_do_call("saveSearch",
				x_saveSearch.arguments);
		}

		
		// wrapper for searching
		function x_searching() {
			sajax_do_call("searching",
				x_searching.arguments);
		}

		
		// wrapper for changeTheme
		function x_changeTheme() {
			sajax_do_call("changeTheme",
				x_changeTheme.arguments);
		}

		
		// wrapper for getenterprisecontent
		function x_getenterprisecontent() {
			sajax_do_call("getenterprisecontent",
				x_getenterprisecontent.arguments);
		}

		
		// wrapper for getanswers
		function x_getanswers() {
			sajax_do_call("getanswers",
				x_getanswers.arguments);
		}

		
		// wrapper for getspeaks
		function x_getspeaks() {
			sajax_do_call("getspeaks",
				x_getspeaks.arguments);
		}

		
		// wrapper for getcomments
		function x_getcomments() {
			sajax_do_call("getcomments",
				x_getcomments.arguments);
		}

		
		// wrapper for addcomment
		function x_addcomment() {
			sajax_do_call("addcomment",
				x_addcomment.arguments);
		}

		
		// wrapper for gettalents
		function x_gettalents() {
			sajax_do_call("gettalents",
				x_gettalents.arguments);
		}

		
		// wrapper for getjoboffers
		function x_getjoboffers() {
			sajax_do_call("getjoboffers",
				x_getjoboffers.arguments);
		}

		
		// wrapper for saveanswer
		function x_saveanswer() {
			sajax_do_call("saveanswer",
				x_saveanswer.arguments);
		}

		
		// wrapper for enterprisequestionnaire
		function x_enterprisequestionnaire() {
			sajax_do_call("enterprisequestionnaire",
				x_enterprisequestionnaire.arguments);
		}

		
		// wrapper for enterpriselinks
		function x_enterpriselinks() {
			sajax_do_call("enterpriselinks",
				x_enterpriselinks.arguments);
		}

		