// JavaScript for 特色闪字 
// by 孙红军 (ircman@163.com qq:16414766) @ 01/22/2009 10:11
// 更换jQuery版本为1.2.6

// 全局文字对象变量
gts = {	"p":[], 
		"imgsrc":"", 
		"avatar":{"show":"0", "width":"73", "height":"85", "x":"0", "y":"0"},
		"bg":{"show":"0", "width":"200", "height":"200"}, // 是否允许用户上传背景图
		"shantu":{"make":"0", "type":"1", "val":""}
		};

// 默认文字对象
dt = function(_txtid, _cnname) {
	this.txtid = _txtid;
	this.cnname = _cnname;
	
	this.fontface		= "fzzhiyi.ttf";
	this.fontsize		= "14";
	this.fontcolor		= "#FF0099";
	this.altercolor		= "#ffffff";
	this.x				= "0";
	this.y				= "0";
	this.wordlimit		= "10";
	this.textdirection	= "0";
	this.effect			= "0";
	this.jump			= "0";
	this.txt			= "示范文字";
	this.isstroke		= "0";
	this.strokecolor	= "#ff0000";
	this.borderx		= "1";
	this.bordery		= "1";
	this.angle			= "0"
}

// 文字对象数组中添加一个默认文字对象
gts.p.push(new dt('txt1', '文字1'));


/**
 * 初始化工作区
 */
function init_workarea() {
	dWidth = $('#backImage')[0].width;
	dHeight = $('#backImage')[0].height;
	$('#backImage').wrap('<div id="workarea"></div>');
	$('#workarea').css({'position':'relative'})
					 .css({'width':dWidth})
					 .css({'height':dHeight})
					 .css({'border':'1px dotted #ff0000'});

	dd('txt1', 'workarea', '示范文字', '0', '0');
	$('#txt1').css({'color':'#FF0066'}).css({'fontSize':'14px'});
}

/**
 * 删除文字对象
 */
function delTxtObj(o) {
	if ($('#sltTxtObj option').length <= 1)
	{
		alert('只剩下一个文字对象了,无法删除!');
		return false;
	}

	$('#sltTxtObj option').each(function(){
		if ($(this).val() == o)
		{
			$(this).remove();
		}
	});

	$('#'+o).remove();

	for(i=0; i<gts.p.length; i++) {
		if (gts.p[i].txtid == o)
		{
			gts.p = gts.p.removeAt(i);
		}
	}

	chgTxtObj();
}

/**
 * 添加文字对象
 */
function createTxtObj() {
	id = $('#txtObjID').val();
	cname = $('#txtObjCnname').val();
	if (id.length <= 0 || cname.length <= 0)
	{
		alert('ID和中文名都不能为空!');
		return false;
	}
	
	isExist = false;
	$('#sltTxtObj option').each(function(){
		if ($(this).val() == id)
		{
			isExist = true;
		}
	});

	if (isExist)
	{
		alert('ID已经存在, 请重新填写!');
		return false;
	}
	
	newDt = new dt(id, cname);
	gts.p.push(newDt);
	$('#sltTxtObj').append('<option value="'+id+'">'+cname+'</option>');

	dd(id, 'workarea', cname, '0', '0');
	$('#'+id).css({'fontSize':'14px'});

	chgTxtObj();
}

/**
 * 切换文字对象, HTML表单值要对应改变
 */
function chgTxtObj() {
	o = $('#sltTxtObj').val();
	for(i=0; i<gts.p.length; i++) {
		if (gts.p[i].txtid == o) {
			$('#sltFontFamily').val(gts.p[i].fontface); // 字体
			$('#sltFontsize').val(gts.p[i].fontsize);  // 大小
			$('#effect').val(gts.p[i].effect); // 颜色切换
			// 颜色
			colortype = $('#sltColorType').val();
			switch (colortype)
			{
				case '1': // 文字颜色
					 $('#alterColor').val(gts.p[i].fontcolor);
					break;
				case '2': // 切换颜色
					 $('#alterColor').val(gts.p[i].altercolor);
					break;
				default: // 描边颜色
					 $('#alterColor').val(gts.p[i].strokecolor);
					break;
			}
			
			// 描边
			gts.p[i].isstroke == '1' ? $('#cbxIsStroke').attr('checked', 'checked') : $('#cbxIsStroke').removeAttr('checked'); 
			$('#jump').val(gts.p[i].jump); // 闪动效果

			// 示范文字
			$('#txtContent').val(gts.p[i].txt);

			// 文字方向
			gts.p[i].textdirection == '0' ? $('input[@name=rdDirection][@value=0]').attr('checked', 'checked') : $('input[@name=rdDirection][@value=1]').attr('checked', 'checked');
			
			// 字数限制
			$('#wordlimit').val(gts.p[i].wordlimit);
			gts.p[i].textdirection = $('input[@name=rdDirection][@checked]').val();

			gts.p[i].borderx == '1' ? $('#chxLockX').attr('checked', 'checked') : $('#chxLockX').removeAttr('checked');
			gts.p[i].bordery == '1' ? $('#chxLockY').attr('checked', 'checked') : $('#chxLockY').removeAttr('checked');

			// 文字旋转角度
			$('#txtAngle').val(gts.p[i].angle);
		}
	}	
}

/**
 * 设置文字对象属性
 */
function setTxtObj() {
	o = $('#sltTxtObj').val();

	
	for(i=0; i<gts.p.length; i++) {
		if (gts.p[i].txtid == o)
		{
			gts.p[i].fontface = $('#sltFontFamily').val(); // 字体
			gts.p[i].fontsize = $('#sltFontsize').val();  // 大小
			$('#'+o).css({'fontSize':$('#sltFontsize').val()+'px'}); // 页面设置字体大小

			// 颜色特效切换
			gts.p[i].effect = $('#effect').val();

			// 颜色
			colortype = $('#sltColorType').val();
			switch (colortype)
			{
				case '1': // 文字颜色
					gts.p[i].fontcolor = $('#alterColor').val();
					//$('#'+o).css({'fontColor':$('#alterColor').val()});
					break;
				case '2': // 切换颜色
					gts.p[i].altercolor = $('#alterColor').val();
					break;
				default: // 描边颜色
					gts.p[i].strokecolor = $('#alterColor').val();
					break;
			}
			
			// 是否需要描边
			$('#cbxIsStroke').attr('checked') ? gts.p[i].isstroke = '1' : gts.p[i].isstroke = '0';

			// 闪动效果
			gts.p[i].jump = $('#jump').val();

			// 示范文字内容
			gts.p[i].txt = $('#txtContent').val();
			$('#'+gts.p[i].txtid).text($('#txtContent').val());
			
			// 字数限制
			gts.p[i].wordlimit = $('#wordlimit').val();
			gts.p[i].textdirection = $('input[@name=rdDirection][@checked]').val();

			$('#chxLockX').attr('checked') ? gts.p[i].borderx = '1' : gts.p[i].borderx = '0';
			$('#chxLockY').attr('checked') ? gts.p[i].bordery = '1' : gts.p[i].bordery = '0';
			
			// 用户头像
			if ($('#cbxIsAvatar').attr('checked') && $('#userAvatar').attr('id') == undefined )
			{
				dd('userAvatar', 'workarea', '<img src="/images/touxiang.jpg" />', 0, 0);
				gts.avatar.show = '1';
			}
			else if (!$('#cbxIsAvatar').attr('checked'))
			{
				$('#userAvatar').remove();
				gts.avatar.show = '0';
			}
			
			// 文字旋转角度
			gts.p[i].angle = $('#txtAngle').val();
		}
	}
}

/**
 * 设置文字对象值
 * k为变量赋值存在问题
 */
function setGTSVal(id, k, v) {
	for(i=0; i<gts.p.length; i++) {
		if (gts.p[i].txtid == id)
		{
			gts.p[i].k = v;
		}
	}
}

function fontPreview(v)
{
	document.getElementById('fontImg').src = "/images/" + v + ".jpg";
}

/**
 * debug information
 */
function printvar() {
	for(i=0; i<gts.p.length; i++) {
		alert('id:' + gts.p[i].txtid + '\n中文名:' + gts.p[i].cnname + '\n字体:' + gts.p[i].fontface + '\n字体颜色:' + gts.p[i].fontcolor + '\n切换颜色:' + gts.p[i].altercolor + '\n描边颜色:' + gts.p[i].strokecolor + '\n文字大小:' + gts.p[i].fontsize + '\n颜色切换:' + gts.p[i].effect + '\n描边:' + gts.p[i].isstroke + '\n闪动效果:' + gts.p[i].jump + '\n字符限制:' + gts.p[i].wordlimit + '\n文字方向:' + gts.p[i].textdirection + '\n边界X:' + gts.p[i].borderx + '\n边界Y:' + gts.p[i].bordery + '\n头像:' + gts.avatar.show + '\n头像宽度:' + gts.avatar.width + '\n头像高度:' + gts.avatar.height + '\n文字旋转角度:' + gts.p[i].angle + '\n是否闪图:' + gts.shantu.make + '\n闪图类型:' + gts.shantu.type + '\n闪图值:' + gts.shantu.val + '\背景图设置:' + gts.bg.show + '|' + gts.bg.width + '|' + gts.bg.height);
	}
}

function setBg() {
	if ($('#isUploadBg').attr('checked')) {
		gts.bg.show = '1'
	} else {
		gts.bg.show = '0';
	}
}

/**
 * 数组原型函数扩展
 * 根据索引删除其中的一个元素
 */
Array.prototype.removeAt = function(index) {
	if (index < 0)
	{
		return this;
	}
	return this.slice(0, index).concat(this.slice(index+1, this.length));
}

/**
 * 显示头像的宽高设置框
 */
function showWHDialog() {
	if ($('#cbxIsAvatar').attr('checked'))
	{
		$('#avatarWH').show()
		$('#trUploadAv').show();
	}
	else {
		$('#avatarWH').hide();
		$('#trUploadAv').hide();
	}
}

/**
 * 图片效果预览
 */
function previewImg() {
	gts.imgsrc = $('#hdnBackImage').val();
	for (i=0; i<gts.p.length; i++) {
		gts.p[i].x = $('#'+gts.p[i].txtid+'X').val();
		gts.p[i].y = $('#'+gts.p[i].txtid+'Y').val();
	}

	if (gts.avatar.show == '1')
	{
		gts.avatar.x = $('#userAvatarX').val();
		gts.avatar.y = $('#userAvatarY').val();
	}

	$.post('previewtssz.php', {'action':'preview', 'p':$.toJSON(gts), 'avPath':$('#avPath').val()}, function(res){
		$('#previmg').html('<img src="'+res+'" />');
	});
}

/**
 * 保存
 */
function saveImg() {
	title = $('#title').val();
	if ($.trim(title).length <= 0)
	{
		alert('标题不能为空!');
		return false;
	}

	gts.imgsrc = $('#hdnBackImage').val();
	for (i=0; i<gts.p.length; i++) {
		gts.p[i].x = $('#'+gts.p[i].txtid+'X').val();
		gts.p[i].y = $('#'+gts.p[i].txtid+'Y').val();
	}
	
	if (gts.avatar.show == '1')
	{
		gts.avatar.x = $('#userAvatarX').val();
		gts.avatar.y = $('#userAvatarY').val();
	}

	$.post('savetssz.php', {'action':'save', 'p':$.toJSON(gts), 'cid':$('#sltCategory').val(), 'title':title, 'avPath':$('#avPath').val()}, function(res){
		if (res == 'OK')
		{
			alert('保存成功!');
			location.href = '/secure/uploadtsshanzi.php?categoryid=' + $('#sltCategory').val();
		}
	});
}


// 保存到服务器 预保存
function PreSave2Serv() {
	// 先判断是否已经生成了临时图片
	var genimg = $('#genimg').val();
	if (genimg.length <= 0)
	{
		alert('请先生成图片.');
		return false;
	}

	$('#liWatermark').show();
}

function Save2Serv() {
	var genimg = $('#genimg').val();
	if (genimg.length <= 0)
	{
		alert('请先生成图片.');
		return false;
	}

	var authcode = $('#tbxAuthcode').val();
	if (authcode.length <= 0)
	{
		alert('请输入验证码.');
		return false;
	}
	
//	var text = $('#txtContent').val();
	var text = $('#txt1').val();

	$('#btnSaveServ').attr('disabled', 'disabled');
	$.post('/ajax/generate_tssz.php', {'action':'save', 'genimg':genimg, 't':text, 'authcode':authcode, 'gid':$('#tid').val(), 'avShow':$('#avShow').val(), 'avPath':$('#avPath').val(), 'bgPath':$('#bgPath').val()}, function(res){
		if (res == 'error code')
		{
			alert('验证码不正确, 请重新输入验证码');
			return false;
		}
		else {
			eval('var o='+res);
			alert('保存到服务器成功!');
			enable_btn(10, 'btnSaveServ', '保存到服务器');
			$('#genimg').val('');
			$('#myspanBlogCopy').text('[img]'+o.imgsrc+'[/img]');
			$('#myspanPicCopy').text(o.imgsrc);
			$('#myspanPicHtml').text('<img src="'+o.imgsrc+'" />');
			$('#myspanUrl').text(o.pagepath);
			$('#liSpanUrl').show().css({'cursor':'pointer'}).click(function() {window.location.href = o.pagepath; });
			$('#copymisc').show('slow');	
			gen_auth_img();
			$('#liWatermark').hide();
		}
	})
}

function gentssz() {
	iscontinue = true;
	txt = '';
	$(p).each(function(){
		idv = $.trim($('#'+$(this)[0].e).val()).replace(',', '，').replace('|', '｜');
		if (getLen(idv) < 3 || getLen(idv) > $(this)[0].w) {
			len = $(this)[0].w / 2;
			alert($(this)[0].cn+"的最小长度为3个中文字符且最大长度不能超过"+len+"个中文字符");
			iscontinue = false;
			return false;
		}
		if ($(this)[0].r == 0 || $(this)[0].r == undefined)
			txt += idv + '|';
		else
			txt = txt.substring(0, txt.lastIndexOf('|')) + "," + idv + '|';
	});
	
	if (!iscontinue)
		return false;

	txt = txt.substring(0, txt.lastIndexOf('|'));
	waterMark = $('#cbxWaterMark').attr('checked') ? '1' : '0';
	$('#btnGenerate').attr('disabled', 'disabled').val('正在生成图片');
	$.post('/ajax/generate_tssz.php', {'action':'generate', 'txt':txt, 'tid':$('input[@name=tid]').val(), 'avShow':$('#avShow').val(), 'avPath':$('#avPath').val(), 'avX':$('#avX').val(), 'avY':$('#avY').val(), 'wm':waterMark, 'bgpath':$('#bgPath').val()}, function(res){
		eval('var o = '+res);
		$('#backImage').attr('src', o.imgsrc);
		enable_btn(8, 'btnGenerate', '生成图片');
		$('#btnSaveLocal').removeAttr('disabled');
		$('#btnTsszSaveServ').removeAttr('disabled');
		
		$('#myspanBlogCopy').text('[img]'+o.imgsrc+'[/img]');
		$('#myspanPicCopy').text(o.imgsrc);
		$('#myspanPicHtml').text('<img src="'+o.imgsrc+'" />');
		$('#copymisc').show('slow');
		$('#genimg').val(o.imgppath);
//		$('#avPath').val('0');
		alert('图片生成成功!');
	})
}

var _st = window.setTimeout; 
window.setTimeout = function(fRef, mDelay) { 
 if(typeof fRef == 'function'){ 
  var argu = Array.prototype.slice.call(arguments,2); 
  var f = (function(){ fRef.apply(null, argu); }); 
  return _st(f, mDelay); 
 } 
 return _st(fRef,mDelay); 
}    

var iTime;
function enable_btn_pri(i, id, txt) {
	if (i==0) {
		$('#'+id).removeAttr('disabled').val(txt);
		clearTimeout(iTime);
	}
	else {
		$('#'+id).val(txt+"("+i+")");
		i-=1;
		setTimeout(enable_btn, 1000, i, id, txt);
	}
}

function enable_btn(i, id, txt) {
	iTime = setTimeout(enable_btn_pri, 0, i, id, txt);
}

function getLen(str) {
	var len = 0;
	for (var i=0; i<str.length; i++) {
	  if (str.charCodeAt(i) > 127 || str.charCodeAt(i) == 94)
	   len += 2; //utf8格式下中文占3位，gb2312为2位
	  else 
	   len++;
	}
	return len;
}

function copyToClipboard(meintext) 
{
	if (window.clipboardData)
	{
		window.clipboardData.setData("Text", meintext);
		alert('地址复制成功,现在就通过QQ或MSN发送给你的好友,\n或者粘贴到您的博客空间一起分享快乐吧. ^_^');
	}
	else 
	{
		alert('对不起,浏览器不支持直接复制.\n请选择地址,然后右键点击复制,然后发送给您的好友. ^_^');
	}
}

function gen_auth_img()
{
	$('#authimg').attr('src', '../authcode.php');
}

function highlight_menu(id) {
	m = 'nav'+id;
	$('#menu a').each(function(){
		if ($(this).attr('id') == m)
			$(this).removeClass('no').addClass('selected');
		else
			$(this).removeClass('selected').addClass('no');
	});
}

function copymisc()
{
  $('span[@id*=myspan]').each(function(){
  	$(this).mouseover(function(){$(this).css({'color':'#0000ff', 'cursor':'pointer'})}).mouseout(function(){$(this).css({'color':'#ff0000', 'cursor':'pointer'})}).click(function(){copyToClipboard($(this).text())});
  });	
}

function setHomePage(){
	$('#sethomepage')[0].style.behavior='url(#default#homepage)';
	$('#sethomepage')[0].setHomePage('http://www.126123.net');
}

function addfav() {
	var name='126123 - 专业QQ闪字,QQ闪图,特色改图,广告条制作';
	var url='http://www.126123.net';
	if ( window.sidebar && "object" == typeof( window.sidebar ) && "function" == typeof( window.sidebar.addPanel ) )
	{
		//  firefox
		window.sidebar.addPanel(name,url, '' );

	}
	else if ( document.all && "object" == typeof( window.external ) )
	{

		//  ie                
		window.external.addFavorite(url, name);
	}
}

function addqq()
{
	d=document;
	t=d.selection?(d.selection.type!='None'?d.selection.createRange().text:''):(d.getSelection?d.getSelection():'');
	void(vkey=window.open('http://shuqian.qq.com/post?title='+encodeURIComponent(d.title)+'&uri='+encodeURIComponent(d.location.href)+'&jumpback=2&noui=1','favit','width=930,height=470,left=50,top=50,toolbar=no,menubar=no,location=no,scrollbars=yes,status=yes,resizable=yes'));
	vkey.focus();
}

function back_top() {
 var x1 = x2 = x3 = 0;
 var y1 = y2 = y3 = 0;

 if (document.documentElement) {
 x1 = document.documentElement.scrollLeft || 0;
 y1 = document.documentElement.scrollTop || 0;
 }

 if (document.body) {
 x2 = document.body.scrollLeft || 0;
 y2 = document.body.scrollTop || 0;
 }

 x3 = window.scrollX || 0;
 y3 = window.scrollY || 0;

 var x = Math.max(x1, Math.max(x2, x3));
 var y = Math.max(y1, Math.max(y2, y3));

 window.scrollTo(Math.floor(x / 2), Math.floor(y / 2));

 if (x > 0 || y > 0) {
 window.setTimeout("back_top()", 30);
 }
}

function CopyImage(img)
{
 if (img.tagName != 'IMG') return;
 var imgsrc = img.src;
 if(imgsrc.indexOf('wait.gif')>0){
 alert('请稍等，图片还没有生成');
 return;
 }
 if (typeof img.contentEditable == 'undefined' || !document.body.createControlRange){
 alert('抱歉，浏览器不支持直接复制图片！\n请将鼠标移到图片上方，单击鼠标右键在弹出菜单中选择“复制”');
 }else{
 var ctrl = document.body.createControlRange();
 img.contentEditable = true;
 ctrl.addElement(img);
 ctrl.execCommand('Copy');
 img.contentEditable = false;
 alert('复制完成，到QQ对话框里按Ctrl-V就可以啦！\n\n若不能粘贴请重复尝试或用鼠标右键选复制');
 }
}

function SaveImage(img){
 if (typeof img == 'object')
 	img = img.src;
 window.win = open(img);
 setTimeout(function() {win.document.execCommand('SaveAs')}, 200);
}

function uploadav(w, h) {
		var button = $('#btnUpload'), interval;
		new Ajax_upload(button,{
		action: 'uploadav.php', 
		name: 'userfile',
		data: {
			'w':w,
			'h':h
		},
		onSubmit : function(file, ext){
			if (!(ext && /^(jpg|png|jpeg|gif)$/.test(ext))){
				alert('图片的格式只能为jpg/png/jpeg/gif格式');
				return false;				
			}
			button.text('正在上传');
			this.disable();
			
			interval = window.setInterval(function(){
				var text = button.text();
				if (text.length < 10){
					button.text(text + '.');					
				} else {
					button.text('正在上传');				
				}
			}, 200);
		},
		onComplete: function(file, response){
			button.text('点击上传头像');
			window.clearInterval(interval);
			this.enable();
			$('#avPath').val(response);
			alert('头像上传成功, 现在请点击生成图片按钮生成图片.');
			}
		});
		$('#btnUpload').css({'border':'1px solid #999999', 'backgroundColor':'#ddd', 'width':'300px', 'textAlign':'center', 'marginLeft':'5px', 'height':'25px'});
}

function uploadbg(w, h) {
		var button = $('#btnUploadBg'), interval;
		new Ajax_upload(button,{
		action: 'uploadbg.php', 
		name: 'userfile',
		data: {
			'w':w,
			'h':h
		},
		onSubmit : function(file, ext){
			if (!(ext && /^(jpg|png|jpeg|gif)$/.test(ext))){
				alert('图片的格式只能为jpg/png/jpeg/gif格式');
				return false;				
			}
			button.text('正在上传');
			this.disable();
			
			interval = window.setInterval(function(){
				var text = button.text();
				if (text.length < 10){
					button.text(text + '.');					
				} else {
					button.text('正在上传');				
				}
			}, 200);
		},
		onComplete: function(file, response){
			button.text('点击上传背景图');
			window.clearInterval(interval);
			this.enable();
			$('#bgPath').val(response);
			$('#backImage').attr('src', response);
			alert('背景图上传成功.');
			}
		});
		$('#btnUploadBg').css({'border':'1px solid #999999', 'backgroundColor':'#ddd', 'width':'300px', 'textAlign':'center', 'marginLeft':'5px', 'height':'25px'});
}

function uploadsav() {
		var button = $('#btnUpload'), interval;
		new Ajax_upload(button,{
		action: 'uploadsav.php', 
		name: 'userfile',
		onSubmit : function(file, ext){
			if (!(ext && /^(jpg|png|jpeg|gif)$/.test(ext))){
				alert('图片的格式只能为jpg/png/jpeg/gif格式');
				return false;				
			}
			button.text('正在上传');
			this.disable();
			
			interval = window.setInterval(function(){
				var text = button.text();
				if (text.length < 10){
					button.text(text + '.');					
				} else {
					button.text('正在上传');				
				}
			}, 200);
		},
		onComplete: function(file, response){
			button.text('点击上传头像');
			window.clearInterval(interval);
			this.enable();
			$('#avPath').val(response);
			alert('头像上传成功, 现在请点击生成图片按钮生成图片.');
			}
		});
		$('#btnUpload').css({'border':'1px solid #999999', 'backgroundColor':'#ddd', 'width':'300px', 'textAlign':'center', 'marginLeft':'5px', 'height':'25px'});
}

function setShanTu() {
	if ($('#isShanTu').attr('checked')) {
		gts.shantu.make = '1';
		$('#shantuType').show();
		if ($('#shantuType').val() == '1') {
			$('#stType1').show();
			$('#stType2').hide();
		}
		else {
			$('#stType1').hide();
			$('#stType2').show();
		}
	}
	else {
		gts.shantu.make = '0';
		$('#shantuType').hide();
		$('#stType1').hide();
		$('#stType2').hide();
	}
}

function switchSTType() {
	if ($('#shantuType').val() == '1') {
		gts.shantu.type = '1';
		$('#stType1').show();
		$('#stType2').hide();
	}
	else {
		gts.shantu.type = '2';
		$('#stType1').hide();
		$('#stType2').show();
	}
}

function setSTVal(v) {
	gts.shantu.val = v;
	alert('设置成功!');
}
