//v1.0
//Copyright 2006 Adobe Systems, Inc. All rights reserved.
//
//v1.01 - Chyi (chyi1235@gmail.com) 1 July 2007
//
//1. Added Dynamic Headers
//2. Deleted SW Support
//3. Width and Height has to be specifed in parent element
//4. Added FlashHead into function names to avoid duplication with the original script
//5. Added function flasHeaders()
//6. Added pickup child tagname as flash filename
//
//v1.02 - Chyi (chyi1235@gmail.com) 13 September 2007
//
//1. Added Dynamic Images Process
//
//chyimg\
//////////////////////// process images
function flasImg(tagger,path) {    
	var aFlashImg = document.getElementsByName(tagger);
	for (var i=0;i<aFlashImg.length;i++)
	{
		var myWidth = (aFlashImg[i].firstChild.offsetWidth);
		var myHeight = (aFlashImg[i].firstChild.offsetHeight);
		var embWidth = myWidth+0;
		var embHeight = myHeight+0;
		var myContent = escape(aFlashImg[i].innerHTML);
		var myObj = aFlashImg[i];
		var myPromo = aFlashImg[i].getAttribute("promo"); 
		var myFlashFile = aFlashImg[i].getAttribute("fhref"); 
		var myImgFile = escape(aFlashImg[i].firstChild.src);
		AC_FL_RunContentFlashImg('codebase','http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,28,0',
												'wmode','transparent',
												'width',embWidth,
												'height',embHeight,
												'src',path+myFlashFile,
												'quality','high',
												'menu','false',
												'scale','noscale',
												'pluginspage','http://www.macromedia.com/go/getflashplayer',
												'movie',path+myFlashFile,
												'salign','lt',
												'saya',myObj,
												'FlashVars','imgpath='+myImgFile+'&mov_height='+myHeight+'&mov_width='+myWidth+'&promo='+myPromo);
	}
}
function AC_FL_RunContentFlashImg(){
  var ret = 
    AC_GetArgsFlashHead
    (  arguments, ".swf", "movie", "clsid:d27cdb6e-ae6d-11cf-96b8-444553540000"
     , "application/x-shockwave-flash"
    );
  var newflash = AC_GenerateobjFlashImg(ret.objAttrs, ret.params, ret.embedAttrs, ret.sayabenda);
}

function AC_GenerateobjFlashImg(objAttrs, params, embedAttrs, saya) 
{ 
  var str = '<object ';
  for (var i in objAttrs)
    str += i + '="' + objAttrs[i] + '" ';
  str += '>';
  for (var i in params)
    str += '<param name="' + i + '" value="' + params[i] + '" /> ';
  str += '<embed ';
  for (var i in embedAttrs)
    str += i + '="' + embedAttrs[i] + '" ';
  str += ' ></embed></object>';
  
  saya.innerHTML = str;
}
//////////////////////// process text
function flasHeaders(tagger,path) {    
	var aFlashHead = document.getElementsByName(tagger);
	for (var i=0;i<aFlashHead.length;i++)
	{
		var myWidth = aFlashHead[i].offsetWidth;
		var myHeight = aFlashHead[i].offsetHeight;
//		var myContent = aFlashHead[i].innerHTML;
//		var myContent = myContent.replace(/"/g,"'");
		var myContent = escape(aFlashHead[i].innerHTML);
//		alert(unescape(myContent));
		var myObj = aFlashHead[i];
//		var myFlashFile = aFlashHead[i].children.item(0).tagName;
		var myFlashFile = aFlashHead[i].getAttribute("fhref"); 
//		var myFlashFile = myFlashFile.toLowerCase();
		AC_FL_RunContentFlashHead('codebase','http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,28,0',
												'wmode','transparent',
												'width',myWidth,
												'height',myHeight,
												'src',path+myFlashFile,
												'quality','high',
												'menu','false',
												'scale','noscale',
												'pluginspage','http://www.macromedia.com/go/getflashplayer',
												'movie',path+myFlashFile,
												'salign','lt',
												'saya',myObj,
												'FlashVars','txt_title='+myContent+'&txt_height='+myHeight+'&txt_width='+myWidth);
	}
}
function AC_AddExtensionFlashHead(src, ext)
{
  if (src.indexOf('?') != -1)
    return src.replace(/\?/, ext+'?'); 
  else
    return src + ext;
}

function AC_GenerateobjFlashHead(objAttrs, params, embedAttrs, saya) 
{ 
  var str = '<object ';
  for (var i in objAttrs)
    str += i + '="' + objAttrs[i] + '" ';
  str += '>';
  for (var i in params)
    str += '<param name="' + i + '" value="' + params[i] + '" /> ';
  str += '<embed ';
  for (var i in embedAttrs)
    str += i + '="' + embedAttrs[i] + '" ';
  str += ' ></embed></object>';
  
//  document.write(str);
	saya.innerHTML = str;
//alert(str);
  //return str;
}

function AC_FL_RunContentFlashHead(){
  var ret = 
    AC_GetArgsFlashHead
    (  arguments, ".swf", "movie", "clsid:d27cdb6e-ae6d-11cf-96b8-444553540000"
     , "application/x-shockwave-flash"
    );
  var newflash = AC_GenerateobjFlashHead(ret.objAttrs, ret.params, ret.embedAttrs, ret.sayabenda);
}

function AC_GetArgsFlashHead(args, ext, srcParamName, classid, mimeType){
  var ret = new Object();
  ret.embedAttrs = new Object();
  ret.params = new Object();
  ret.objAttrs = new Object();
  ret.sayanumber = new Object();
  for (var i=0; i < args.length; i=i+2){
    var currArg = args[i].toLowerCase();    

    switch (currArg){	
      case "classid":
        break;
      case "pluginspage":
        ret.embedAttrs[args[i]] = args[i+1];
        break;
      case "src":
      case "movie":	
        args[i+1] = AC_AddExtensionFlashHead(args[i+1], ext);
        ret.embedAttrs["src"] = args[i+1];
        ret.params[srcParamName] = args[i+1];
        break;
      case "onafterupdate":
      case "onbeforeupdate":
      case "onblur":
      case "oncellchange":
      case "onclick":
      case "ondblClick":
      case "ondrag":
      case "ondragend":
      case "ondragenter":
      case "ondragleave":
      case "ondragover":
      case "ondrop":
      case "onfinish":
      case "onfocus":
      case "onhelp":
      case "onmousedown":
      case "onmouseup":
      case "onmouseover":
      case "onmousemove":
      case "onmouseout":
      case "onkeypress":
      case "onkeydown":
      case "onkeyup":
      case "onload":
      case "onlosecapture":
      case "onpropertychange":
      case "onreadystatechange":
      case "onrowsdelete":
      case "onrowenter":
      case "onrowexit":
      case "onrowsinserted":
      case "onstart":
      case "onscroll":
      case "onbeforeeditfocus":
      case "onactivate":
      case "onbeforedeactivate":
      case "ondeactivate":
      case "type":
      case "codebase":
        ret.objAttrs[args[i]] = args[i+1];
        break;
      case "width":
  	  	ret.objAttrs[args[i]] = args[i+1];
		ret.embedAttrs["width"] = args[i+1];
		break;
      case "height":
		ret.objAttrs[args[i]] = args[i+1];
		ret.embedAttrs["height"] = args[i+1];
		break;
      case "align":
      case "vspace": 
      case "hspace":
      case "class":
      case "title":
      case "accesskey":
      case "name":
	  case "saya":
	  	ret.sayabenda = args[i+1];
		break;
      case "id":
      case "tabindex":
        ret.embedAttrs[args[i]] = ret.objAttrs[args[i]] = args[i+1];
        break;
      default:
        ret.embedAttrs[args[i]] = ret.params[args[i]] = args[i+1];
    }
  }
  ret.objAttrs["classid"] = classid;
  if (mimeType) ret.embedAttrs["type"] = mimeType;
  return ret;
}
