$(function() {
var duration = 500, arParent=[], arParentIdx=[], baseURL, jsonMnuData;
/* events */
/* functions */
function setPageDisplay() {
/* fixing main area for IE */
if($.browser.msie) { /* IE special case to prevent IE8+'s characteristics */
var oWrapper = document.getElementById("wrapper");
oWrapper.style.setExpression("height",
"(document.compatMode=='CSS1Compat' ? document.documentElement.clientHeight : document.body.clientHeight)-20");
var oMain = document.getElementById("main");
oMain.style.setExpression("height",
"(document.compatMode=='CSS1Compat' ? document.documentElement.clientHeight : document.body.clientHeight)-205");
}
$("#wrapper").fadeIn(1000); baseURL = "https://siakad.stitmkendal.ac.id/app/";
}
function setPageEvent() {
var getUrlVars = function(href) {
var vars = [], hash;
var hashes = href.slice(href.indexOf('?') + 1).split('&');
for(var i = 0; i < hashes.length; i++)
{
hash = hashes[i].split('=');
vars.push(hash[0]);
vars[hash[0]] = hash[1];
}
return vars;
}
var showSubmenuPop = function(el,idx) {
if(!idx) idx=0;
if($("#menupop"+idx).get().length==0) {
$(document.body).append('
');
setTimeout(function() { showSubmenuPop(el,idx) },100);
} else {
var indeks = $("#menu .menuhorizontal li a").index(el)-1;
if(indeks<0) {
indeks = -1;
$("#menupop"+(idx-1)+" .menulist li").each(function() {
if($(this).attr("class").indexOf("separator")<0) indeks += 1;
if($(this).text()==el.parent().text()) return false;
});
}
arParentIdx[idx] = indeks;
var jsonMnuNode = jsonMnuData[arParentIdx[0]].submenu;
for(var i=0;i0) {
var subMnu = "";
$("#menupop"+idx).html(subMnu);
var offset = el.offset(),
mnuWidth = parseInt($("#menupop"+idx).css("minWidth").replace("px","")), textWidth = 0,
mnuHeight = 0,
mnuLength = $("#menupop"+idx+" .menulist li").get().length,
mnuTop = 0;
$("#menupop"+idx+" .menulist li").each(function() {
if($(this).attr("class").indexOf("separator")>=0) mnuHeight+=5;
else mnuHeight+=parseInt($(this).css("line-height").replace("px",""));
/* tambahan biar lebarnya fleksibel */
if($(this).find("a:first").text().length>0) {
if($(this).find("a:first").text().length>textWidth) textWidth = $(this).find("a:first").text().length;
}
if($(this).find("span:first").text().length>0) {
if($(this).find("span:first").text().length>textWidth) textWidth = $(this).find("span:first").text().length;
}
//if(textWidth*7>mnuWidth) mnuWidth = textWidth*7;
if(textWidth*6>mnuWidth) mnuWidth = textWidth*6;
/* ============ */
});
// $("#debug").html(offset.left);
if(idx==0) {
$("#menupop"+idx).css({
left: offset.left+"px",
top: offset.top+el.height()+6+"px",
height:mnuHeight+5+"px",
// ditambah ini
width:mnuWidth+40+"px"
}).slideDown(0.1*duration);
} else {
mnuTop = offset.top-2;
if ($(window).height()<=(mnuTop+mnuHeight+5)) {
var rowHeight = parseInt($("#menupop"+idx+" .menulist li[class!='separator']").eq(0).css("line-height").replace("px",""));
mnuTop -= (mnuHeight-rowHeight);
}
$("#debug").html("#menupop"+idx+"a="+(offset.left)+"+"+($("#menupop"+idx).width()-1));
$("#menupop"+idx).css({
// left: offset.left+$("#menupop"+idx).width()-1+"px",
left: offset.left+$("#menupop"+(idx-1)).width()-1+"px",
top: mnuTop+"px",
height:mnuHeight+5+"px",
// ditambah ini
width:mnuWidth+40+"px"
}); /*.slideDown(0.1*duration); */
setTimeout(function() {
$("#menupop"+idx).slideDown(0.1*duration,function() { /* to ensure the height */
mnuHeight = 0;
$("#menupop"+idx+" .menulist li").each(function() {
if($(this).attr("class").indexOf("separator")>=0) mnuHeight+=5;
else mnuHeight+=parseInt($(this).css("line-height").replace("px",""));
});
$("#menupop"+idx).css({ height:mnuHeight+5+"px" });
});
},0.1*duration);
}
$(window).resize(function(e){
for(var i=0; i<=arParent.length; i++) {
if(i==0) {
offset = $("#subheader .menuhorizontal li a[title]").offset();
$("#menupop"+i).css({
left: offset.left+"px",
top: offset.top+el.height()+6+"px"
});
} else {
$("#menupop"+(i-1)+" li a").each(function() {
if($(this).attr("title")==arParent[i-1]) {
offset = $(this).offset();
mnuTop = offset.top-2;
if ($(window).height()<=(mnuTop+mnuHeight+5)) {
var rowHeight = parseInt($("#menupop"+i+" .menulist li[class!='separator']").eq(0).css("line-height").replace("px",""));
mnuTop -= (mnuHeight-rowHeight);
}
$("#menupop"+i).css({
left: offset.left+$("#menupop"+(i-1)).width()-1+"px",
/*top: offset.top-2+"px"*/
top: mnuTop+"px",
});
return false;
}
});
}
}
}).click(function(e) {
var $target = $(e.target);
if($(e.target).is(":not(.menupop .menulist li a, #subheader .menuhorizontal li a)")) {
$("#subheader .menuhorizontal li a[title]").click();
}
});
menupopEvent();
}
}
}
var menupopEvent = function() {
$(".menupop .menulist li a").unbind().click(function(e) {
e.preventDefault();
var sClass = $(this).attr("class"), idx;
if(sClass=="parent") {
idx=$(this).parent().parent().parent().parent().attr("id").replace("menupop","");
arParent[idx] = $(this).attr("title");
showSubmenuPop($(this),parseInt(idx)+1);
} else {
var title = $(this).attr("title"), href = $(this).attr('href'),
url = $(location).attr('href'), param;
var href1 = getUrlVars(href)[0],
href2 = getUrlVars(href)["key"], href3 = getUrlVars(href)["mnu"],
href4 = href.replace('?','');
param = "href="+href;
$.ajax({
url: baseURL+"check_menu",
type: "POST",
data: param,
success: function(response){
if($.trim(response)=='1')
window.location.replace(href);
else
window.alert('Under Construction...');
//window.alert('Not available for demo version...');
}
});
}
}).hover(function() {
/*var idx;*/
var sClass = $(this).attr("class"), idx;
idx=$(this).parent().parent().parent().parent().attr("id").replace("menupop","");
for(var i=idx; i0) {
if(i==idx) {
if(arParent[i]!=$(this).attr("title")) {
$("#menupop"+(parseInt(i)+1)).hide();
arParent[i] = "";
}
} else {
$("#menupop"+(parseInt(i)+1)).hide();
arParent[i] = "";
}
}
}
if(sClass=="parent") {
/*idx=$(this).parent().parent().parent().parent().attr("id").replace("menupop","");*/
arParent[idx] = $(this).attr("title");
showSubmenuPop($(this),parseInt(idx)+1);
} else {
arParent[idx] = "";
setTimeout(function() { $("#menupop"+(parseInt(idx)+1)).hide(); },0.2*duration);
}
});
}
if($("#loginfrm").get().length>0) {
$("#loginfrm .LoginUserID").focus(function() {
$(this).css({ background: "url(https://siakad.stitmkendal.ac.id/assets/img/bguseron.gif) left top no-repeat #FFF" });
}).blur(function() {
if($.trim($(this).val())=='') {
$(this).css({ background: "url(https://siakad.stitmkendal.ac.id/assets/img/bguseroff.gif) left top no-repeat #FFF" });
$(this).val('');
}
});
$("#loginfrm .LoginPassword").focus(function() {
$(this).css({ background: "url(https://siakad.stitmkendal.ac.id/assets/img/bgpwdon.gif) left top no-repeat #FFF" });
}).blur(function() {
if($.trim($(this).val())=='') {
$(this).css({ background: "url(https://siakad.stitmkendal.ac.id/assets/img/bgpwdoff.gif) left top no-repeat #FFF" });
$(this).val('');
}
});
$("#loginfrm .TextInput").keypress(function(e) { if(e.which==13) doLogin(); });
$("#loginfrm .Button").unbind().click(function(e) { doLogin(e) });
/* special actions */
$("#loginfrm .LoginUserID").val('');
$("#loginfrm .LoginPassword").val('');
}
if($("#search").is(":visible")) {
$("#search .SearchKeyword").focus(function() {
$(this).css({ background: "url(https://siakad.stitmkendal.ac.id/assets/img/bgsearchon.gif) left center no-repeat #FFF" });
})
.blur(function() {
if($.trim($(this).val())=='') {
$(this).val('')
.css({ background: "url(https://siakad.stitmkendal.ac.id/assets/img/bgsearchoff.gif) left center no-repeat #FFF" });
}
}).keyup(function(e) { if(e.which==13 && $.trim($(this).val())!='') doQuickSearch(); });
$("#search .SearchButton").click(function() {
if($("#search .SearchKeyword").val()=='')
window.alert('Masukkan kata kunci untuk pencarian!');
else
doQuickSearch();
});
}
$("#account .linksignout").click(function(e) {
e.preventDefault();
if(confirm('Anda yakin hendak keluar dari sistem?')) doLogout();
});
$("#account .linkchgpwd").click(function(e) {
e.preventDefault(); showFormChgPwd();
});
if($("#main .ButtonMain").get().length>0) {
$("#main .ButtonMain[name='GantiPassword']").click(function() { showFormChgPwd() });
$("#main .ButtonMain[name='SignOut']").click(function() {
if(confirm('Anda yakin hendak keluar dari sistem?')) doLogout();
});
}
/* menu events */
$("#menu .menuhorizontal li a[class='mnuon']").click(function(e) { e.preventDefault() });
$("#menu .menuhorizontal li a[class!='mnuon']").click(function(e) {
e.preventDefault();
var sClass, href = $(this).attr("href");
//if(href.indexOf("?")>=0) {
if(href.indexOf("#")<0) {
if($(this).attr("class") && $(this).attr("class").indexOf("parent")>=0) {
if(!$(this).attr("title")) {
$("#menu .menuhorizontal li a").each(function() {
sClass = $(this).attr("class");
sClass = $.trim(sClass.replace("clicked",""));
if(sClass=="") $(this).removeAttr("class");
else $(this).attr("class",sClass);
$(this).removeAttr("title");
});
$(".menupop").hide();
sClass = $(this).attr("class");
sClass += " clicked";
$(this).attr("class",$.trim(sClass)).attr("title",$(this).text());
showSubmenuPop($(this));
} else {
sClass = $(this).attr("class");
sClass = $.trim(sClass.replace("clicked",""));
if(sClass=="") $(this).removeAttr("class");
else $(this).attr("class",sClass);
$(this).removeAttr("title");
$(".menupop").hide();
}
} else {
var title = $(this).attr("title"), href = $(this).attr('href'),
url = $(location).attr('href'), param;
var href1 = getUrlVars(href)[0],
href2 = getUrlVars(href)["key"], href3 = getUrlVars(href)["mnu"],
href4 = href.replace('?','');
param = "href="+href;
$.ajax({
url: baseURL+"check_menu",
type: "POST",
data: param,
success: function(response){
if($.trim(response)=='1')
window.location.replace(href);
else
window.alert('Under Construction...');
//window.alert('Not available for demo version...');
}
});
}
} else {
$("#menu .menuhorizontal li a").each(function() {
sClass = $(this).attr("class");
sClass = $.trim(sClass.replace("clicked",""));
if(sClass=="") $(this).removeAttr("class");
else $(this).attr("class",sClass);
$(this).removeAttr("title");
});
$(".menupop").hide();
}
});
/* prepare menu */
setMenuData();
}
function setMenuData() {
showModal(true);
$.ajax({
dataType: "json",
url: baseURL+"menudata/" + (new Date()).getTime(),
success: function(response){ jsonMnuData = response;showModal(false) },
error: function(){ window.alert("Unknown error in retrieving user menu data.\nContact the vendor!"); }
});
}
function setMenuData_() {
showModal(true);
if($("#menudata").get().length==0) {
$(document.body).append('');
setTimeout(function() { setMenuData() },100);
} else {
$.ajax({
/*dataType: "json",*/
url: baseURL+"menudata",
success: function(response){ $("#menudata").html(response); showModal(false) },
error: function(){ window.alert("Unknown error in retrieving menu."); }
});
}
}
function doLogout(e) {
$.ajax({
type: "POST",
url: baseURL+"logout_process",
success: function(response){ window.location.reload(); }
});
}
function doLogin(e) {
var param = '', $TextInput;
for(var i=$("#loginfrm .TextInput").get().length-1;i>=0;i--) {
$TextInput = $("#loginfrm .TextInput").eq(i);
if($.trim($TextInput.val())=='') {
if(e) {
window.alert('Isikan '+$TextInput.attr("title")+' Anda');
$TextInput.focus();
}
param = ''; return false;
} else {
param+= $TextInput.attr("name")+'='+escape($TextInput.val())+'&';
}
}
if(param!='') {
/*window.alert(param); */
$.ajax({
type: "POST",
url: baseURL+"login_process",
data: param,
beforeSend: function(){ showModal(true) },
/*complete: function(){ showModal(false) },*/
success: function(response){
if(response.indexOf("")>0) {
arRsp = response.split("");
if(arRsp[0]=='0') {
/* $("#loginfrm").hide(); */
window.location.reload();
} else {
window.alert(arRsp[1]);
$("#loginfrm .TextInput").eq(parseInt(arRsp[2])).select();
showModal(false);
}
} else { window.alert(response); showModal(false) }
}, error: function() { window.alert('AJAX Error...'); showModal(false); }
});
}
}
function showFormChgPwd() {
showModal(true);
if($("#mainpop").get().length==0) {
$(document.body).append('');
setTimeout(function() { showFormChgPwd() },100);
} else {
var href = $(location).attr('href');
href= href.split("/")[href.split("/").length-1];
href= href.substr(0,href.indexOf("."));
$.ajax({
url:baseURL+"chg_pwd_form",
type:'POST',
success:function(response){
if(response.split("").length>1) {
arResponse = response.split("");
var width = $.trim(arResponse[0].replace('width:','')),
height = $.trim(arResponse[1].replace('height:','')),
html = arResponse[2];
$("#mainpop").html(html).css({
height:parseInt(height),
width:parseInt(width),
marginTop:parseInt(height)/-2,
marginLeft:parseInt(width)/-2
}).fadeIn(duration);
if($.browser.msie) { // IE special case
oMainForm = document.getElementById("mainpop");
oMainForm.style.setExpression("margin-top",
"(document.compatMode=='CSS1Compat' ? document.documentElement.scrollTop : document.body.scrollTop)-"+parseInt(height)/2
);
oMainForm.style.setExpression("marginLeft",
"(document.compatMode=='CSS1Compat' ? document.documentElement.scrollLeft : document.body.scrollLeft)-"+parseInt(width)/2
);
}
} else $("#mainpop").html(response).fadeIn(duration);
setFormEvent();
},
error:function(){ window.alert('AJAX Error in opening form...'); }
});
}
}
function setFormEvent() {
$("#mainpop input").unbind();
$("#mainpop .ButtonImage[name='Close']").click(function() { closeForm() });
$("#mainpop .TextForm").keypress(function(e) { if(e.which==13) changePwd(); });
$("#mainpop .ButtonPop[name='Save']").click(function(e) { changePwd(e) });
}
function closeForm() { showModal(false); $("#mainpop").hide().html(''); }
function changePwd(e) { //alert(e)
var param = '';
$("#mainpop .TextForm").each(function() {
if($.trim($(this).val())=='') {
if(e) { window.alert('Isikan '+$(this).attr("title")+' Anda'); }
$(this).focus();
param = ''; return false;
} else {
param+= $(this).attr("name")+'='+escape($(this).val())+'&';
}
});
if(param!=''
&& $("#mainpop .TextForm[name='PasswordBaru']").val()!=$("#mainpop .TextForm[name='PasswordBaru2']").val()) {
window.alert("Cek lagi Password Baru Anda");
$("#mainpop .TextForm[name='PasswordBaru2']").select();
param='';
}
if(param!='') {
$.ajax({
type: "POST",
url:baseURL+"chg_pwd",
data: param,
success: function(response){
if(response.indexOf("")>0) {
arRsp = response.split("");
window.alert(arRsp[1]);
if(arRsp[0]=='0') {
closeForm();
} else {
$("#mainpop .TextForm[name='PasswordLama']").select();
}
} else if(response.toLowerCase().indexOf("session habis")>=0) {
window.alert(response);
window.location.reload();
} else {
window.alert('Unknown error. Call the vendor!');
closeForm();
}
}, error: function() { window.alert('AJAX Error...') }
});
}
}
function showModal(state) {
if($("#mask").get().length==0) {
$(document.body).append('');
setTimeout(function() { showModal(state); },100);
} else {
if(!state) {
if($("#mask:animated").get().length>0) {
$("#mask:animated").stop().hide();
} else {
setTimeout(function() { $("#mask").fadeOut(duration); },100);
}
} else {
$("#mask:hidden").css({ backgroundColor: "#000", opacity: .5, filter: "alpha(opacity=50)" })
.fadeIn(duration).fadeTo(duration,0.75);
}
}
}
function doQuickSearch() {
$("#search .SearchForm .HiddenValue[name='Keyword']").val($("#search .SearchKeyword").val());
$("#search .SearchForm").submit();
}
function substrLeft(str,n){
if(n <= 0)
return "";
else if(n > String(str).length)
return str;
else
return String(str).substring(0,n);
}
function substrRight(str, n){
if (n <= 0)
return "";
else if (n > String(str).length)
return str;
else {
var iLen = String(str).length;
return String(str).substring(iLen, iLen - n);
}
}
function clearChar(str,chr) {
while(str.indexOf(chr)>=0)
str = str.replace(chr,"");
return str;
}
/* actions */
setPageDisplay();
setPageEvent();
});