/**
 * 使用此文件的js，必须在页面中载入jquery.js
 */
var LD_Event = {
	/**
	 * 取得兼容浏览器的事件对象
	 * @param object event 事件对象参数，IE以外的浏览器有效
	 * @return object 事件对象
	 */
	realEvent: function(event) {
		return window.event || event;
	},
	
	/**
	 * 取得触发事件的对象
	 *
	 * @param object event 事件对象
	 * @return HTMLElement
	 */
	element: function(event) {
		var evt = this.realEvent(event);
		return evt.srcElement || evt.target;
	}
}

/**
 * 创建类
 */
var LD_Class = {
	create: function() {
		return function() {
			this.initialize.apply(this, arguments);
		}
	}
}

Function.prototype.bind = function() {
	var __method = this, args = jQuery.makeArray(arguments), object = args.shift();
	return function() {
		__method.apply(object, args.concat(jQuery.makeArray(arguments)));
	}
}

Function.prototype.bindEvent = function() {
	var __method = this, args = jQuery.makeArray(arguments), object = args.shift();
	return function(event) {
		__method.apply(object, [window.event || event].concat(args));
	}
}

/**
 * 预先截入图片
 */
function LD_loadImages() {
	if (argments.length === 0) return;	//当没有传递参数时
	for (var i = 0, n = arguments.length; i < n; i ++) {
		if (arguments[i] && arguments[i].constructor === Array) {	//当参数是数组时
			arguments.callee(arguments[i]);	//递归
		} else {
			new Image().src = arguments[i];
		}
	}
}

/**
 * 取得指定ID的节点
 *
 * @param string id	节点对象的ID属性
 * @param mixed	如果对象取得成功则返回对象，否则返回False
 */
function getId(id){
	if(document.getElementById(id)){	//当对象存在时
		return document.getElementById(id);
	}else{
		return false;	
	}
}

/**
 * 创建编辑器
 * @param string elementName 输入框的名称
 * @param int width	编辑器的宽度
 * @param int height 编辑器的高度
 * @param string basePath fck所在的文件夹
 * @param int readCookie 是否自动保存
 * @param function callback
 */
function LD_createEditor(event, elementName, width, height, basePath, readCookie, callback) {
	
	if (readCookie === undefined) readCookie = 0;
	if (!jQuery('iframe#'+elementName+'_editor').get(0)) {	//如果编辑器已经创建
		jQuery("textarea[name='"+elementName+"']").after('<iframe id="'+elementName+'_editor"  name ="'+elementName+'_editor" src="'+basePath+'inc/javascript/sina_editor/edit/editor.htm?id='+elementName+'&ReadCookie='+readCookie+'" width="'+width+'" height="'+height+'"  frameborder="0" scrolling="no"></iframe>');
	} else {
		jQuery('iframe#'+elementName+'_editor').show();
	}
	jQuery("textarea[name='"+elementName+"']").hide();	//隐藏textarea
	if (event !== null)
		jQuery(LD_Event.element(event)).hide();
	if (jQuery.isFunction(callback)) callback.apply(null, arguments);
	
}

/**
 * 设置错误信息
 *
 * @param string message 报错语句
 */
function LD_setError(message) {
	getId('error').innerHTML = message;
	getId('error').style.display = 'block';
}

/**
 * 清除错误信息
 */
function LD_clearError() {
	getId("error").innerHTML = '&nbsp;';
}

/**
 * 验证删除信息表单
 *
 * @param HTMLElement elementForm 表单对象
 */
function checkDeleteForm(elementForm) {
	if (jQuery("input[name='id[]']").isAllNotChecked()) {
		LD_alert(undefined, '请至少选中一条记录！');
		return false;
	}
	LD_confirm(undefined, '您确定删除选中的记录吗', {}, function(){elementForm.submit()})
	//elementForm.submit();
}


/**
 * 自定义提示框
 * @param string title	提示标题
 * @param string content 提示内容
 * @param object buttons 和jquery ui中的buttons参数一样
 */
function LD_alert(title, content, _options, callback) {
	if (jQuery.isUndefined(title)) title = '错误提示';
	var buttonOk = function() {	//点击确定按钮后，执行的函数
		if (jQuery.isFunction(callback)) callback();	//呼叫回调函数，这里一般是让表单元素获取焦点
		jQuery(this).dialog('close');	//隐藏dialog
	}
	var options = {
		bgiframe: true,	//蒙板
		resizable: true,	//设置为不可改变大小
		draggable: true,	//设置为不可拖动
		height: 180,
		modal: true,
		overlay: {
			backgroundColor: '#000',
			opacity: 0.5
		},
		buttons: {'确定':buttonOk}
	};	//默认参数
	if (typeof _options == 'object') jQuery.extend(options, _options);
	if (!jQuery('#ui_dialog').get(0)) {	//如果没有创建dialog对象时
		jQuery('body').append('<div id="ui_dialog" title="'+title+'"><p id="ui_dialog_content">'+content+'</p></div>')
		jQuery("#ui_dialog").dialog(options);
		jQuery('#ui_dialog_content').dialog('open');
	} else {
		jQuery('#ui_dialog').dialog('option', 'title', title); //设置提示标题
		jQuery('#ui_dialog_content').html(content);	//设置提示内容
		jQuery('#ui_dialog').dialog('option', 'buttons', {'确定':buttonOk});
		jQuery('#ui_dialog').dialog('open');	//打开提示框
	}
}

/**
 * 自定义确定提示框
 * @param string title	提示标题
 * @param string content 提示内容
 * @param object _options 可以复盖确定框的默认属性
 * @param function onDefinite 点击确定以后的回调函数
 * @param function onCancel 点击取消后的回调函数
 */
function LD_confirm(title, content, _options, onDefinite, onCancel) {
	if (jQuery.isUndefined(title) || title === null) title = '提示';
	
	var buttonOk = function() {	//点击确定按钮后，执行的函数
		if (jQuery.isFunction(onDefinite)) onDefinite();	//呼叫回调函数，这里一般是让表单元素获取焦点
		jQuery(this).dialog('close');	//隐藏dialog
	}
	var buttonCancel = function() {	//点击取消按钮后，执行的函数
		if (jQuery.isFunction(onCancel)) onCancel();	//呼叫回调函数，这里一般是让表单元素获取焦点
		jQuery(this).dialog('close');	//隐藏dialog
	}
	
	options = {
		bgiframe: true,	//蒙板
		resizable: false,	//设置为不可改变大小
		draggable: false,	//设置为不可拖动
		height: 140,
		modal: true,
		overlay: {
			backgroundColor: '#000',
			opacity: 0.5
		},
		buttons: {'取消':buttonCancel, '确定':buttonOk}
	};	//默认参数
	if (typeof _options == 'object') jQuery.extend(options, _options);
	if (!jQuery('#ui_dialog').get(0)) {	//如果没有创建dialog对象时
		jQuery('body').append('<div id="ui_dialog" title="'+title+'"><p id="ui_dialog_content">'+content+'</p></div>')
		jQuery("#ui_dialog").dialog(options);
		jQuery('#ui_dialog_content').dialog('open');
	} else {
		jQuery('#ui_dialog').dialog('option', 'title', title); //设置提示标题
		jQuery('#ui_dialog_content').html(content);	//设置提示内容
		jQuery('#ui_dialog').dialog('option', 'buttons', {'取消':buttonCancel, '确定':buttonOk})
		jQuery('#ui_dialog').dialog('open');	//打开提示框
	}
	
	return false;
}





/**
 * 使标签获取焦点
 * @param HTMLElement or jQuery or string element
 */
function LD_focusToElement(element) {
	jQuery(element).focus();
}

/***********************************************************
* Two terms of the product
* Function name fxMultiply()
* @param number a
* @param number b
* @return int
***************************************************************/
function LD_fxMultiply(a,b){   
	var   f1   =   String(a).split(".").length>1 ? String(a).split(".")[1].length : 0;   
	var   f2   =   String(b).split(".").length>1 ? String(b).split(".")[1].length : 0;   
	var   aa   =   String(a).replace(/^0*|\./g,'');   
	var   bb   =   String(b).replace(/^0*|\./g,'');   
	return Number(aa)*Number(bb)/Math.pow(10,f1+f2);  
}

/**
 * 除法，小数运算问题
 * @param number arg1 数字1
 * @param number arg2 数字2
 * @return number
 */
function LD_fxDiv(arg1,arg2){ 
	var t1=0,t2=0,r1,r2; 
	try{
		t1=arg1.toString().split(".")[1].length
	} catch (e) {} 
	
	try{
		t2=arg2.toString().split(".")[1].length
	} catch (e) {} 
	
	with (Math) { 
		r1=Number(arg1.toString().replace(".","")) 
		r2=Number(arg2.toString().replace(".","")) 
		return (r1/r2)*pow(10,t2-t1); 
	} 
}

/**
 * 加法，小数运算问题
 * @param number arg1 数字1
 * @param number arg2 数字2
 * @return number
 */
function LD_fxAdd(arg1,arg2){ 
	var r1,r2,m; 
	try{r1=arg1.toString().split(".")[1].length}catch(e){r1=0} 
	try{r2=arg2.toString().split(".")[1].length}catch(e){r2=0} 
	m=Math.pow(10,Math.max(r1,r2)) 
	return (arg1*m+arg2*m)/m 
} 

/**
 * 减法，小数运算问题
 * @param number arg1 数字1
 * @param number arg2 数字2
 * @return number
 */
function LD_fxComp(arg1,arg2){
     var r1,r2,m,n;
     try{r1=arg1.toString().split(".")[1].length}catch(e){r1=0}
     try{r2=arg2.toString().split(".")[1].length}catch(e){r2=0}
     m=Math.pow(10,Math.max(r1,r2));
     //last modify by deeka
     //动态控制精度长度
     n=(r1>=r2)?r1:r2;
     return ((arg1*m-arg2*m)/m).toFixed(n);
}


/***********************************************************
* Description: Prevent the calculation error javascript
* Function name: fx()
* @param: int intString
* returnValue: int
***************************************************************/
function LD_fx(intString){
	return Math.round(intString*100)/100;	
}

/**
 * 页面加载完成后所执行的程序
 */
jQuery(document).ready(function() {
	jQuery("input[type='reset']").click(function() {
		return confirm('您确定要重新填写吗？');
	});
});


/**
 * 去掉冒泡事件.[注意,当前未完成兼容性.]
 */
function cancelBubble() {
 
    var evt = window.event || event;
    if(evt.preventDefault) {    
        // Firefox    
        evt.preventDefault();    
        evt.stopPropagation();    
    } else {    
        // IE    
        evt.cancelBubble=true;    
        evt.returnValue = false;    
    }	 
}  

/**
 * 指定对象进行样式切换.
 */
function change_style(obj,style_1,style_2)
{
   
   if(obj.attr("class") == style_1) 
   {
    obj.attr("class",style_2);
   }
   else 
   {
     obj.attr("class",style_1);
   }
}

/**
 * 删除形为.
 */
function deleteAction() {
	location.href = this.href;
}


//ajax 提交表单.
function ajax_submit()
{
	var queryString = $('#myform').formSerialize(); 
	$.post( $('#myform').attr("action"), queryString, function(data){
				 eval(data);
	});
}

/**
*编辑器提交表单的回代处理.
*/
function handle_editor_sub()
{
	if(validate()){
		ajax_submit();
	 }
}

/**
*提交交上传文件的回代处理.图片版.
*/
function uploadfile(upload_control_id,value_control_id,thumb_pic_id,upload_url,base_url)
{
     if(!upload_validate())
	 {
	 	return false;
	 }

	$.blockUI({message:"图片上传中"}); //开始上传图片
	
	//2.上传
	$.ajaxFileUpload
	(
	{
		url:upload_url,
		secureuri:false,
		fileElementId:upload_control_id,
		dataType: 'json',
		success: function (data, status)
		{
			//$.blockUI({message:data.msg});
			$("[id='"+value_control_id+"']").val(data.pic_url);
			
			$("[id='"+thumb_pic_id+"']").attr("src",base_url+data.pic_url);
		},
		error: function (data, status, e)
		{
			$.blockUI({message:'上传异常'});
		}
	  }
	)   
	//3 
   $.unblockUI();
} 

/**
*提交交上传文件的回代处理.非图片版
*/
function uploadfile2(upload_control_id,value_control_id,thumb_pic_id,upload_url,base_url)
{
     if(!upload_validate())
	 {
	 	return false;
	 }

	$.blockUI({message:"文件上传中"}); //开始上传图片
	
	//2.上传
	$.ajaxFileUpload
	(
	{
		url:upload_url,
		secureuri:false,
		fileElementId:upload_control_id,
		dataType: 'json',
		success: function (data, status)
		{
			//$.blockUI({message:data.msg});
			$("[id='"+value_control_id+"']").val(data.pic_url);
			//$("[id='"+thumb_pic_id+"']").attr("src",base_url+data.pic_url);
		},
		error: function (data, status, e)
		{
			$.blockUI({message:'上传异常'});
		}
	  }
	)   
   $.unblockUI();
} 



/**
 * 显示二级联动菜单
 *
 * @param int parent_value 一级菜单的值
 * @param array data 二级菜单的数据
 * @param HTMLElement element 显示二级区域的SELECT
 */
function show_sub(parent_value, data, element ,titlename,id_name) {
	if (jQuery.isArray(eval(data[parent_value]))) {
		var current_items = eval(data[parent_value]); 
		element.options.length = 0;	//删除所有的option
		jQuery.each(current_items, function(key, value) {
			element.options[element.options.length] = new Option( eval("value."+titlename), eval("value."+id_name));
		});
	}
}


//显示tooltip 提示信息
function show_info(title,info)
{
 	    	$.blockUI({message:info}); //开始上传图片
}

//显示tooltip 提示信息
function hid()
{
   	   	$.unblockUI(); //开始上传图片
}

//批处理提交功能函数
function save_batch(url,set_table,set_field,set_value,data,href)
{

	  $.post(url,
    	 { id: data,set_table:set_table,set_field:set_field,set_value:set_value},
    	 	function(data){
    			nav_page(href ,'正在重载批处理数据')
    	   }   
 	 );  
	 
}


//重载分页函数.
function nav_page(href,title)
{
  		href = href.replace('/index/', '/index_list_data/');
		show_info('分页提示',title);
	    $.get(href, function(data){
		        hid();
				$("#list_data").html(data);
		   } 
		); 
		href = href.replace('/index_list_data/', '/index_list_nav/');
	    $.get(href, function(data){
		       $("#list_nav").html(data);
		   } 
		); 
	   return false;
}

//重设图片大小.
function resize_pic(obj,min_width,max_width)
{
  obj.width = (obj.width == min_width)?max_width:min_width;
}

//滚动缩放图片大小
function wheel_big(o)
{
	var zoom=parseInt(o.style.zoom, 10)||100;zoom+=window.event.wheelDelta/12;
	if (zoom>0) o.style.zoom=zoom+'%';
	return false; 
}

//判断所给的地址是否为图片.
function check_is_pic(url){
	var locArray = url.split(".");
	url_ext = locArray[locArray.length-1].toLowerCase();
	
	pic_array = new Array("jpg","png","gif","jpeg");
	for (key in pic_array)   {
      if(pic_array[key]==url_ext){
	  
		return true;
	  }
     }
	return false
}
