(function($)
{
$.jscPopup = function(url,options_param,hooks_param)
{
var $dlg = $('
');
var def_hooks ={ formatTxt:null,popupShown:null};
var hooks = $.extend(def_hooks,hooks_param||{});
var def_options={close: function(ev,ui){ $(this).remove(); } };
var options = $.extend(def_options,options_param||{});
$.get(url,{},
function (responseText)
{
if($.isFunction(hooks.formatTxt))
{
responseText = hooks.formatTxt(responseText);
}
$dlg.html(responseText);
$dlg.dialog(options);
if($.isFunction(hooks.popupShown))
{
responseText = hooks.popupShown($dlg);
}
});
}
$.parseJSONObj=function(jsontxt)
{
var objarr = $.parseJSON(jsontxt);
if(null == objarr)
{
return null;
}
var obj = $.isArray(objarr) ? objarr[0]:objarr;
return obj;
}
$.jscFormatToTable = function(json,tableid)
{
var obj ={};
if($.type(json)=== 'string')
{
obj = $.parseJSONObj(json);
}
else
{
obj = json;
}
var allrows='';
$.each(obj, function(name,val)
{
allrows += ''+name+' | '+val+' |
\n';
});
return '';
}
$.jscIsSet = function(v)
{
return ($.type(v) == 'undefined') ? false: true;
//return (typeof(v) == 'undefined')?false:true;
}
$.jscGetUrlVars = function(urlP)
{
var vars = {}, hash;
var url = $.jscIsSet(urlP)?urlP:window.location.href;
var hashes = url.slice(url.indexOf('?') + 1).split('&');
for(var i = 0; i < hashes.length; i++)
{
hash = hashes[i].split('=');
vars[hash[0]] = hash[1];
}
return vars;
}
$.jscComposeURL=function(url,params)
{
var bare_url = url.split('?')[0];
var url_params='';
var new_params = $.extend({},$.jscGetUrlVars(url),params)
var ret_url = bare_url;
$.each(new_params, function(k,v)
{
if(0 == k){return;}
url_params += k+'='+v+'&';
});
if(url_params.length > 0)
{
ret_url += '?' + url_params.slice(0,-1);
}
return encodeURI(ret_url);
}
sfm_refresh_captcha = function(img_id,input_id,page_session_id)
{
var $img = $("img#"+img_id);
var r = $img.data('sfm_rand');
var newurl = $.jscComposeURL($img.attr('src'),
{'sfm_get_captcha':1,
'sfm_captcha_k':page_session_id,
'rand':Math.random()*10000
})
$img.attr('src', newurl);
$("input#"+input_id).val('').focus();
};
sfm_hyper_link_popup = function(anchor,url,p_width,p_height)
{
var iframeid = anchor.id+'_frame';
var $dlg = $("");
$dlg.css({overflow:'hidden',margin:0});
var pos = $(anchor).offset();
var height = $(anchor).outerHeight();
$dlg.dialog({draggable:true,resizable: false,position:[pos.left,pos.top+height+20],width:p_width,height:p_height});
$dlg.parent().resizable(
{
start:function()
{
var $ifr = $('iframe',this);
var $overlay = $("")
.css({position:'absolute',top:$ifr.position().top,left:0})
.height($ifr.height())
.width('100%');
$ifr.after($overlay);
},
stop:function()
{
$('#dlg_overlay_div',this).remove();
}
});
//$iframe.attr('src',url);
}
sfm_popup_form=function(url,p_width,p_height,options_param)
{
var $dlg = $("");
$dlg.css({position:'relative',overflow:'hidden',margin:0});
if(options_param && options_param.limit_to_screen === true)
{
if($(window).width() < p_width){ p_width = $(window).width()-20;}
if($(window).height() < p_height){ p_height = $(window).height()-20;}
}
var defaults =
{
draggable:true,modal:true, resizable: true,closeOnEscape: false,width:p_width,height:p_height,
position:{my: "center",at: "center",of: window},
resizeStart:function()
{
var $ifr = $('iframe',this);
var $overlay = $("")
.css({position:'absolute', top:$ifr.position().top,left:0})
.height($ifr.height())
.width('100%');
$ifr.after($overlay);
},
resize:function()
{
var $ifr = $('iframe',this);
$('#dlg_overlay_div',this).height($ifr.height());
},
resizeStop:function()
{
$('#dlg_overlay_div',this).remove();
}
};
var options = $.extend(defaults, options_param||{});
$dlg.dialog(options);
}
sfm_window_popup_form=function(url,p_width,p_height,options_param)
{
var defaults =
{
location:false,menubar:false,status:true,toolbar:false,scrollbars:true
};
var options = $.extend(defaults, options_param||{});
var params='width='+p_width+',height='+p_height;
params += ',location='+ (options.location?'yes':'no');
params += ',menubar='+ (options.menubar?'yes':'no');
params += ',status='+ (options.status?'yes':'no');
params += ',toolbar='+ (options.toolbar?'yes':'no');
params += ',scrollbars='+ (options.scrollbars?'yes':'no');
window.open(url,'sfm_form_popup',params);
}
sfmFormObj=function(p_divid,p_url,p_height,options_param)
{
var defaults =
{
divid:p_divid,
url:p_url,
height:p_height,
do_url_matching:true,
pass_url_vars:false
};
var options = $.extend(defaults, options_param||{});
try
{
if(options.do_url_matching)
{//The URL of the iframe should match the URl of the parent page
//As much a s possible for some of the features to work properly
//like session variables, scrolling to back
var page_a = $('', { href:document.location } )[0];
var form_a = $('', { href:p_url } )[0];
//https/http
if(page_a.protocol == 'https:')
{
form_a.protocol = page_a.protocol;
}
if(page_a.hostname.length > 0)
{
if(form_a.hostname == page_a.hostname ||
form_a.hostname == ('www.'+page_a.hostname)||
('www.'+form_a.hostname) == page_a.hostname)
{
form_a.hostname = page_a.hostname;
}
}
//Pass url variables to form url. This can be used to init the form
if(true == options.pass_url_vars)
{
var parent_q = page_a.search.substr(1);
if(parent_q.length > 0)
{
var q1 = form_a.search.length==0 ?'?':'&';
form_a.search += q1 + parent_q;
}
}
options.url = form_a.href;
}
}catch(e)
{
}
$(function()
{
$ifr = $("");
$('#'+options.divid).append($ifr);
});
}
sfm_show_loading_on_formsubmit=function(formname,id)
{
var $form = $('form#'+formname);
$('#'+id,$form).click(function()
{
if(this.form.disable_onsubmit)
{//for prev button, no validation_success is called. since there is no validation
$(this).parent().addClass('loading_div');
$(this).hide();
}
else
{
$(this.form).data('last_clicked_button',this.id);
}
return true;
});
$form.bind('validation_success',function()
{
if($(this).data('last_clicked_button') === id)
{
$('#'+id,this).parent().addClass('loading_div');
$('#'+id,this).remove();
}
});
$('#'+id,$form).parent().removeClass('loading_div');
}
sfm_clear_form = function(formobj)
{
var $formobj = $(formobj);
if($formobj.get(0).validator)
{
$formobj.get(0).validator.clearMessages();
}
$formobj.find(':input').each(function()
{
switch(this.type)
{
case 'password':
case 'select-multiple':
case 'select-one':
case 'textarea':
{
$(this).val('');
$(this).trigger('change');
break;
}
case 'text':
{
if(this.sfm_num_obj)
{
$(this).val('0');
}
else
{
$(this).val('');
}
$(this).trigger('change');
break;
}
case 'checkbox':
case 'radio':
{
this.checked = false;
$(this).trigger('change');
}
}
});
}
sfm_init_special_action_button = function(formname,id,name)
{
var $form = $('form#'+formname);
var $button = $('#'+id,$form);
$button.attr('name',id);
$button.data('sfm_special_var_name',name)
$button.click(function()
{
var form = $(this).closest('form').get(0);
$("").appendTo(form);
form.submit();
return false;
});
};
sfm_init_default_text = function(formname,id,def_txt)
{
var $form = $('form#'+formname);
var $txt = $('#'+id,$form);
if($txt.length <=0){ return; }
var txtobj = $txt.get(0);
txtobj.default_text = def_txt;
function init()
{
var $div = $('').text(txtobj.default_text);
var divobj = $div.get(0);
var divcssobj = {};
var requiredProps =["cursor","height","width","letter-spacing","word-break","word-wrap","fontFamily","fontSize","fontSizeAdjust","fontStretch","fontStyle","fontVariant","fontWeight","letterSpacing","lineHeight","marginBottom","marginLeft","marginRight","marginTop","paddingBottom","paddingLeft","paddingRight","paddingTop","z-index"];
for (var i = 0; i < requiredProps.length; i++)
{
divcssobj[requiredProps[i]] = $txt.css(requiredProps[i]);
}
jQuery.extend( divcssobj, {
position : 'absolute',
left : $txt.position().left,
top : $txt.position().top,
border:0,
'background-color':'transparent',
'background-image':'none',
overflow:'hidden',
"overflow-x":'hidden',
"overflow-y":'hidden',
color:'#999'
});
$div.css(divcssobj);
if($txt.prop("tagName") == 'TEXTAREA')
{
$txt.css({ overflow:'auto'});
}
$div.addClass('sfm_auto_hide_text');
$txt.parent().append($div);
txtobj.overlay_obj = divobj;
//$txt.val('');
divobj.inputbelow = txtobj;
divobj.hideself=function()
{
var inp = this.inputbelow;
$(this).hide();
$(inp).focus();
};
divobj.showself=function()
{
$(this).show();
$(this.inputbelow).val('');
};
$div.bind('mouseup',function(event)
{
this.hideself();
event.stopPropagation();
});
if($txt.val() =='' || $txt.val() == txtobj.default_text)
{
$txt.val('');
}
else
{
txtobj.make_empty();
}
}
txtobj.make_empty=function()
{
if($(this.overlay_obj).is(":visible"))
{
this.overlay_obj.hideself();
}
};
txtobj.restore_default=function()
{
if(this.default_text && ($(this).val() == ''||
$(this).val() == this.default_text))
{
this.overlay_obj.showself();
}
};
$txt.focus(function()
{
this.make_empty();
});
$txt.blur(function()
{
this.restore_default();
});
init();
}
})(jQuery);